2017-01-31 25 views
0

これは非常に一般的な問題ですが、この問題を修正できる適切な解決策はありません。私はまた、この「基本的な接続が閉じられました:接続は予期せず閉じられました」という問題をWCF Webサービスでは発生させていますが、ランダムであり、再現できる特定のシナリオはありません。私はこの問題を数週間から解決しようとしており、タイムアウトを増やしたり、キープアライブ接続を有効/無効にしたり、リクエストごとに新しい接続を開いたり、リクエストの完了直後に閉じるなど、すべての可能な解決策を試しました。運がない。また、サーバー側とクライアント側の両方でトレースとログを有効にしましたが、この問題の原因となる特定の問題が見つかりませんでした。 IIS 7および.NET Framework 4.0を使用して、Windowsサーバー環境に配備WCF:基底の接続が閉じられました:予期せず接続が閉じられました

これらのWCFのSOAP Webサービス

クライアント側のトレース:

System.Net.Sockets Verbose: 0 : [351180] 00000000 :             : 
    DateTime=2017-01-20T14:25:44.4000839Z 
System.Net.Sockets Verbose: 0 : [351180] Exiting Socket#34051556::Receive()  -> Int32#0 
    DateTime=2017-01-20T14:25:44.4000839Z 
System.Net.Sockets Verbose: 0 : [351180] Socket#34051556::Dispose() 
    DateTime=2017-01-20T14:25:44.4000839Z 
System.Net Error: 0 : [351180] Exception in HttpWebRequest#40245115:: - The underlying connection was closed: The connection was closed unexpectedly.. 
    DateTime=2017-01-20T14:25:44.4157088Z 
System.Net Error: 0 : [351180] Exception in HttpWebRequest#40245115::GetResponse - The underlying connection was closed: The connection was closed unexpectedly.. 
    DateTime=2017-01-20T14:25:44.4157088Z 

サーバー側のトレース:

System.Net.Sockets Verbose: 0 : [10808] Exiting DNS::GetHostByName() -> IPHostEntry#31978062 
    DateTime=2017-01-20T14:16:20.7036270Z 
System.Net.Sockets Verbose: 0 : [10808] Exiting DNS::GetHostAddresses()  -> IPAddress[]#52697188 
    DateTime=2017-01-20T14:16:20.7036270Z 
System.Net.Sockets Verbose: 0 : [10808] DNS::GetHostAddresses() 
    DateTime=2017-01-20T14:25:03.3938764Z 
System.Net.Sockets Verbose: 0 : [10808] DNS::GetHostByName() 
    DateTime=2017-01-20T14:25:03.3938764Z 
System.Net.Sockets Verbose: 0 : [10808] Exiting DNS::GetHostByName() -> IPHostEntry#39699746 
    DateTime=2017-01-20T14:25:03.4094763Z 
System.Net.Sockets Verbose: 0 : [10808] Exiting DNS::GetHostAddresses()  -> IPAddress[]#12400315 
    DateTime=2017-01-20T14:25:03.4094763Z 

トレース設定:

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
      <source name="System.ServiceModel" 
        switchValue="Critical, Error, Warning, Verbose , Information, ActivityTracing" 
        propagateActivity="true"> 
      <listeners> 
       <add name="sdt" 
        type="System.Diagnostics.XmlWriterTraceListener" 
        initializeData= "c:\stacktrace_log.log" /> 
      </listeners> 
     </source> 
    </sources> 
</system.diagnostics> 

誰でもこの問題の解決にお役に立てれば幸いです。

+0

質問は「非常に」明確なので、私ができることは推測することだけです。私はサーバー側で何かクラッシュすると思う。詳細(トレースを有効にする)(https://msdn.microsoft.com/en-us/library/ms733025(v = vs.110).aspx) - これはこのエラーの一般的な開始点です。 – Reniuz

+0

私は既に私がトレースを有効にして何かを見つけることができなかったことを述べました。 –

+0

申し訳ありませんが、私は信じていません。証明する。 – Reniuz

答えて

1

最後に、私はこの問題を考え出しました。負荷バランサの接続タイムアウトに問題があり、要求がロードバランサで定義された制限よりも長くかかると接続が切断されます。皆さん、お世話になりました。

+0

Shahid、これを解決するためにあなたがしたことを説明してください。私は同じ問題に直面しています。 –

+0

前に説明したように、私の場合、接続タイムアウト制限が40秒に設定されているロードバランサの問題と、コールに40秒以上かかる場合、バランサはタイムアウトしていました。スタックトレースこれは非常に一般的なエラーで、カスタムロギングをコードに入れてトレースすることができます。 –

関連する問題