2011-10-12 88 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

我之前遇到过这个问题,导致线程中止,但这是一个不同的问题。而且我还尝试过这样做,它也做了同样的事情。 –