4

HttpWebRequest を使用して Web ページを呼び出そうとしていますが、「操作がタイムアウトしました」というエラーが表示されます。

string sURL = "http://localhost:53667/MyPage.aspx";

WebRequest wrGETURL = WebRequest.Create(sURL);
wrGETURL.Timeout = 5000;
System.Net.ServicePointManager.DefaultConnectionLimit = 5000;

var r = wrGETURL.GetResponse();
r.Close();
wrGETURL.Abort();

ご覧のとおり、DefaultConnectionLimit プロパティを追加し、他のスレッドが提案したように応答を閉じましたが、そうではないようでした。私は何を間違っていますか?

編集:

http://support.microsoft.com/kb/307023の完全な例を使用すると、Visual C# からコンソール アプリとして実行/デバッグしても、タイムアウトしません。このプログラムを Windows タスク スケジューラで実行するように設定すると、タイムアウトになります。

4

2 に答える 2

1

このような単純な操作については、代わりに WebClient を使用して実行してください。

それははるかに複雑ではなく、それがWebRequest問題であることに固有のものである可能性は低くなります。また、Visual Studio 以外の同じマシンから実行しようとしましたか?

サイトは cassini、iis express、iis 6、iis 7 などでホストされていますか? リモート接続を許可する特別な設定がいくつかあり、一部の iirc はリモート接続をまったく許可しない場合があります。

IIS Express は特別な作業を行います - IIS Express は外部要求を有効にします

カッシーニはまったくできません - https://serverfault.com/questions/82899/can-i-access-cassini-from-a-remote-machine

于 2012-12-21T13:29:38.970 に答える
0

このコードを追加してみてください:

ServicePointManager.DefaultConnectionLimit = 500;

同時接続により、タイムアウト エラーが発生する場合があります。私の場合、これはうまくいきます。

于 2015-08-30T21:38:19.430 に答える