Asp.net
在 IIS 7.5 中聯繫 WCF 服務時由對等方 (502) 重置連接
我們有一個 WCF 服務幾個月來一直執行良好。就在今天早上,對該服務的呼叫開始失敗,代理伺服器報告“對等方重置連接”(502)。奇怪的是,沒有 IIS 日誌條目記錄已斷開的連接,儘管我們能夠使用 WireShark 檢測到它們。因此,似乎執行緒正在死去,沒有留下任何痕跡。
有問題的網路方法是檢索 100 條數據庫記錄。我們發現,通過將結果限制為 20 條記錄,它可以按預期工作。我懷疑有一個超時起作用,但無一例外或回溯都很難知道。
有沒有人經歷過這個?關於如何解決它的任何建議?
您可以在您的服務上打開 WCF 診斷以獲取有關異常的更多詳細資訊。
為了讓您快速上手 - 在您的網路(或應用程序)配置中:
- 在配置元素下的任意位置添加 System.Diagnostics 部分。您可以將路徑替換為您希望儲存文件的路徑。
<system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing"> <listeners> <add type="System.Diagnostics.DefaultTraceListener" name="Default"> <filter type="" /> </add> <add name="ServiceModelMessageLoggingListener"> <filter type="" /> </add> </listeners> </source> <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true"> <listeners> <add type="System.Diagnostics.DefaultTraceListener" name="Default"> <filter type="" /> </add> <add name="ServiceModelTraceListener"> <filter type="" /> </add> </listeners> </source> </sources> <sharedListeners> <add initializeData="C:\temp\services_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"> <filter type="" /> </add> <add initializeData="C:\temp\services_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"> <filter type="" /> </add> </sharedListeners> </system.diagnostics>
- 在 system.ServiceModel 下添加以下內容:
<diagnostics wmiProviderEnabled="false"> <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" /> </diagnostics>
在 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ 下啟動 SvcTraceViewer.exe。載入消息跟踪 (services_messages.svclog) 和服務跟踪日誌 (services_tracelog.svclog)。您可以在工具中拖放文件或打開一個然後添加另一個
尋找問題的紅色粗體字母。
如果您想讓編輯 WCF 配置的體驗更令人滿意,您可以使用與 SvcTraceViewer.exe (#3) 位於同一文件夾下的 SvcConfigEditor.exe。只需打開配置文件,您應該會看到 Diagnostics 文件夾,它允許您啟動/停止和配置診斷。