2011-10-12 110 views
0

在我的主登錄屏幕上,我正在檢查瀏覽器是否爲移動瀏覽器。如果瀏覽器是移動瀏覽器,我將用戶重定向到移動網站登錄屏幕。這適用於我的Android設備,但不適用於我的iPhone。我去嘗試在我的重定向後放入Response.End(),但這導致我的Android設備開始收到錯誤消息。我在兩臺設備上都收到的消息是有許多服務器重定向。任何提示?移動設備上的Response.Redirect錯誤

編輯:

if (Request.Headers["User-Agent"] != null && (Request.Browser["IsMobileDevice"] == "true" 
      || Request.UserAgent.ToUpper().Contains("MIDP") || Request.UserAgent.ToUpper().Contains("CLDC") 
      || Request.UserAgent.ToLower().Contains("iphone") || Request.UserAgent.ToLower().Contains("avant") 
      || Request.UserAgent.ToLower().Contains("nokia") || Request.UserAgent.ToLower().Contains("pda") 
      || Request.UserAgent.ToLower().Contains("moto") || Request.UserAgent.ToLower().Contains("windows ce") 
      || Request.UserAgent.ToLower().Contains("hand") || Request.UserAgent.ToLower().Contains("mobi") 
      || Request.UserAgent.ToUpper().Contains("HTC") || Request.UserAgent.ToLower().Contains("sony") 
      || Request.UserAgent.ToLower().Contains("panasonic") || Request.UserAgent.ToLower().Contains("blackberry") 
      || Request.UserAgent.ToLower().Contains("240x320") || Request.UserAgent.ToLower().Contains("voda")) 
      || Request.UserAgent.ToLower().Contains("android") || Request.UserAgent.ToLower().Contains("ipad")) 
     { 
      Response.Redirect("~/Mobile/Login.aspx"); 
     } 
+1

您能否顯示您用來確定您遇到移動瀏覽器的代碼?此外,您的移動登錄頁面上是否有任何點移動頁面也執行相同的檢查和重定向,導致循環? – lsuarez

+0

我知道你不是問這個,而是把它扔到那裏。您可能想查看http://51degrees.codeplex.com/移動設備檢測和重定向。它爲您完成上述所有工作,併爲您提供更具體的設備細節。 –

+1

上面加了我的代碼,沒什麼特別的。 –

回答

0

檢查服務器上的事件查看器日誌。也可能想嘗試做Response.Redirect(urlString,false);

Response.Redirect(urlString);在裏面做了一個Response.End(),可能會導致線程中止的問題。這是預料之中,並沒有什麼大不了的,但它會拋出一個例外。

+0

我之前遇到過這個問題,導致線程中止,但這是一個不同的問題。而且我還嘗試過這樣做,它也做了同樣的事情。 –