3

誰か助けてください。私はこれを何時間も調査してきましたが、提案されたさまざまな修正を数多く試しましたが、なぜこのエラーがまだ発生するのかについて完全に途方に暮れています.

次のコードを含むASP.NET 4.0 Web ページがあります。

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やWebの他の場所で見つけたすべての提案を試しましたが、HttpWebRequestの実装が機能することはなかったので、これを読んだ後、代わりにTcpClientを使用してみました: .NETCompactFrameworkのuseUnsafeHeaderParsingを設定する方法

それを機能させるには、次の行を変更する必要がありました。

 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 に答える