IE10在尝试访问asmx服务jsdebug文件时出现Http 401错误

时间:2013-09-04 13:18:09

标签: asp.net http asmx internet-explorer-10 http-status-code-401

我们有一个ASP.NET应用程序,在以前版本的Internet Explorer 10中没有任何问题。

但是相同的应用程序在Internet Explorer 10中不起作用。

当我调查此问题时,我发现.asmx网络服务的引用获得了401个未经授权的错误。

IE10的有问题请求与IE9的工作请求之间的唯一区别是:用户代理字符串。

让我告诉你差异:

以下请求是IE10的有问题请求。


GET http://abc.com/Services/ResourceService.asmx/jsdebug HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: http://abc.com/def/ghi.aspx
Accept-Language: tr-TR
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Connection: Keep-Alive
DNT: 1
Host: sgmiis2:8090
Cookie: .ASPXANONYMOUS=XXXASP.NET_SessionId=YYY;ASPXAUTH=ZZZ;

它正在

  

401 - 未经授权:由于凭据无效,访问被拒绝。


这是IE10之前的相同应用程序请求。

GET http://abc.com/Services/ResourceService.asmx/jsdebug HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: http://abc.com/def/ghi.aspx
Accept-Language: tr-TR
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/6.0;)
Connection: Keep-Alive
DNT: 1
Host: sgmiis2:8090
Cookie: .ASPXANONYMOUS=XXXASP.NET_SessionId=YYY;ASPXAUTH=ZZZ;

但是这个请求正在起作用

  

HTTP / 1.1 200确定


正如您所看到的唯一区别是用户代理标题的“MSIE 10.0”和“MSIE 7.0 / MSIE 8.0 / MSIE 9.0”部分。

我正在通过Fiddler的作曲家部分创建请求。所以没有真正得到401错误的风险。 (我的意思是错误的cookie)因为当我只更改了用户代理字符串时,我可以成功获得HTTP 200的响应。

任何想法我怎么能找出问题?

谢谢,

法提赫。

1 个答案:

答案 0 :(得分:0)

有很多问题,即10。

Microsoft .NET

中的ASP.NET浏览器定义文件可以使用修补程序

请参阅http://support.microsoft.com/kb/2600088了解.NET 4.0 请参阅http://support.microsoft.com/kb/2608565了解.Net 3.5

请同时查看: - http://connect.microsoft.com/VisualStudio/feedback/details/662275/asp-net-user-agent-sniffing-and-ie10-internet-explorer-10

我希望它会对你有所帮助。