3

请有人帮助我。我已经研究了几个小时,尝试了许多不同的建议修复,但我完全不知道为什么我仍然会收到这个错误。

我有一个ASP.NET 4.0网页,其中包含以下代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetHref);
// request.KeepAlive = false;
// request.ProtocolVersion = System.Net.HttpVersion.Version10;
// request.ServicePoint.Expect100Continue = false;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

我已经尝试了所有我能想象到的取消注释上述 3 条注释行的组合。

我的 web.config 中有这个:

<system.net>
   <settings>
      <httpWebRequest useUnsafeHeaderParsing ="true"/>
   </settings>
</system.net>

当我在我的开发机器上运行Fiddler时,页面无异常运行,fiddler 在返回顶部显示此消息:

HTTP/1.0 200 这个有问题的服务器没有返回标头

如果没有 Fiddler 运行,我每次上request.GetResponse()线都会收到错误消息。

4

2 回答 2

6

好吧,我尝试了我在 StackOverflow 和网络上其他地方可以找到的每一个建议,但从来没有实现 HttpWebRequest 为我工作,所以我在阅读以下内容后尝试使用 TcpClient 代替: How To Set useUnsafeHeaderParsing For .NET Compact Framework

为了让它为我工作,我不得不修改这一行:

 sw.WriteLine(string.Format("GET /{0} HTTP/1.1", pathAndQueryString));

到:

 sw.WriteLine(string.Format("GET /{0} {1}", pathAndQueryString, Environment.NewLine+Environment.NewLine));

这奏效了。

于 2012-09-16T21:44:44.370 回答
0

在带有 C# 的 asp.net 中,此问题仅与端口相关联。

许多程序使用 80 端口,这就是您收到此错误的原因,因此请摆脱此问题,无需配置,只需关闭您的

Skype、VPN 软件等。它将解决您的问题。

在我的情况下,实际上不是 Skype,而是热点屏蔽(一个免费的 VPN)软件在后台运行,退出该软件解决了我的问题。

于 2013-12-24T17:05:19.560 回答