2011-06-21 58 views
1

Azureでスケジュールされたタスクとして実行されるコンソールアプリケーションを使用して、Azure上のすべての長い(ish)実行中のWebページ。下の接続が閉じられました:受信時に予期しないエラーが発生しました

問題は、数分後:基になる接続が閉じられました:予期しないエラーが受信

//// used as WebClient doesn't support timeout 
public class ExtendedWebClient : WebClient 
{ 
    public int Timeout { get; set; } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); 
     if (request != null) 
      request.Timeout = Timeout; 
     request.KeepAlive = false; 
     request.ProtocolVersion = HttpVersion.Version10; 
     return request; 
    } 

    public ExtendedWebClient() 
    { 
     Timeout = 1000000; // in ms.. the standard is 100,000 
    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var taskUrl = "http://www.secret.com/secret.aspx"; 
     // create a webclient and issue an HTTP get to our url 
     using (ExtendedWebClient httpRequest = new ExtendedWebClient()) 
     { 
      var output = httpRequest.DownloadString(taskUrl); 
     } 
    } 
} 

答えて

2

Windows Azureロードバランサは、60秒後にアイドル状態のTCP接続を終了します。あなたがロードバランサを呼び出しているようです...何かを送信せずに60秒以上かかる場合がありますか?

+0

コンソールアプリケーションには完全には解決されていませんが、 –

0

実行に接続を監視し、それをクローズしているエンドを見つけるためにWiresharkのようなものが発生しました。このような不思議さは、あなたとあなたのサーバの間のルータがあなたよりもMTUの低いルータによって引き起こされる可能性があります。私はあなたがWCFの設定でMTUを設定できると思う、Azureについて知らない。

+0

こんにちはピーターは - Chromeで実行している場合には、45secs ...これは重要であるかどうかわからないの後に、キープアライブのいくつかの並べ替えを行います。 Wiresharkを使ってこれを得ました..歓声。ハードになる...再構築の考え方! TCP [TCPキープアライブ] 61687> http [ACK] Seq = 0 Ack = 1 Win = 65700 Len = 1 –

関連する問題