ASP.net1.1中 Request.UrlReferrer 的一个小Bug 错误再现: 在 IE 中,接见 http://localhost\1.htm (注重这里有意是 \ 而不是 / , / 是没有问题的。http://localhost\1.htm 在 Mozilla Firefox 中以为是错误的,然则IE以为是准确的。)这样地页面没问题,然则,若是这个页面1.htm中的一个页面链接是连接到一个ASPX页面。假设 1.aspx 1.aspx 使用到这样一行代码 Request.UrlReferrer就会报错误 ,错误如下: 无效的 URI: 无法剖析主机名。 说明: 执行当前 Web 请求时代,泛起未处理的异常。请检查客栈跟踪信息,以领会有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.UriFormatException: 无效的 URI: 无法剖析主机名。 [UriFormatException: 无效的 URI: 无法剖析主机名。] System.Uri.Parse() + System.Uri..ctor(String uriString, Boolean dontEscape) + System.Uri..ctor(String uriString) +7 System.Web.HttpRequest.get_UrlReferrer() + ASP._1_aspx.Page_Load(Object src, EventArgs e) in D:\WEBSITE\Community\1.aspx:6 System.Web.UI.Control.OnLoad(EventArgs e) +55 System.Web.UI.Control.LoadRecursive() +27 System.Web.UI.Page.ProcessRequestMain() +版本信息: Microsoft .NET Framework 版本:1.1..; ASP.NET 版本:1.1.. 请求 1.aspx 页面的时刻,发送的Http头信息的部门如下: GET /1.aspx HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*Referer: http://localhost\1.htmAccept-Language: zh-cnAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.; .NET CLR 2.0.) 显然微软的System.Uri.Parse() 中,以为URL中 / 才是准确的,而 \ 是错误的。 以上Bug,就是通过 ieHTTPHeaders 查出来了.推荐使用 ieHTTPHeaders blog.joycode.com/ghj/archive//10/15/.aspx"gt;http://blog.joycode.com/ghj/archive//10/15/.aspx Friday, October 15, 3:53 PM blog.joycode.com/ghj/Services/Pingback.aspx" rel=pingbackgt; 反馈blog.joycode.com/ghj/archive//10/15/.aspx#"gt;# re: ASP.net1.1中 Request.UrlReferrer 的一个小Bug 10/15/ 4:23 PM _CommentList__ctl0_NameLink href="/go/?url=http://blog.joycode.com/ghj/" class="target" rel="external nofollow" target=_blankgt;ghj 嘿嘿,也许可以这么开顽笑的说, IE 作了许多不遵照尺度的器械,以利便非计算机专业用户。 .net 作了许多遵照尺度的器械,以推广 .net 而这个 bug 正是这两者不能协调的一个显示。