2014-12-31 9 views
1

WCF 자체 호스팅 서비스에 액세스하는 WCF 클라이언트에서 "원격 호스트에 의해 강제로 연결이 끊어졌습니다"오류를 해결하려고합니다. 서비스 측 컴퓨터에서 System32 \ LogFiles \ HTTPERR의 httperr 로그를보고 있었고 클라이언트에서이 오류가 나타날 때마다 내 서비스의 끝점 URI가있는 로그 항목을 봅니다. 그 이유는 "Request_Cancelled"입니다.HTTPERR 로그 : Request_Cancelled (WCF 서비스 문제 해결 중)

나는 그 이유가 무엇을 의미하는지에 대해서는 어디에도 찾을 수 없습니다. 추측 할 수는 있지만 고객에게보고있는 오류와 어떤 관련이있어 야하므로 확실히 알고 싶습니다.

HTTPERR 로그에서 "Request_Cancelled"란 무엇입니까? 그리고 보너스로 WCF 문제에 대한 추가 조명을 비출 수 있습니까?

답변

1

Request_cancelled가 시간 초과 일 수 있습니다.

기본적으로는

OpenTimeout - 1 minute 
CloseTimeout - 1 minute 
SendTimeOut - 1 minute 
ReceiveTimeout - 10 minute. 

당신의 Web.config에서 이러한 설정을 시도해야한다. 웹 서비스에 추가 로깅을 추가합니다. 귀하는 system.serviceModel 섹션

<system.serviceModel> 

.... 

    <diagnostics> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000" /> 
    </diagnostics>  

.... 
</system.serviceModel> 

및 열고 System.Diagnostics 섹션을 추가에서

. 로그를 c : \ temp \ wcfServiceLog.svc에 저장합니다.

<system.diagnostics> 
    <switches> 
     <add name="XmlSerialization.Compilation" value="4"/> 
    </switches> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="xml" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\temp\wcfServiceLog.svc" /> 
    </sharedListeners> 
    </system.diagnostics> 
+1

글쎄, 추적 로그의 능력을 과소 평가했습니다. 그들은 나에게 서비스가 실제로 던지고있는 예외를 보여 주었고, 문제는 서비스가 요청을 완전히 삭제하게하는 FaultException (즉, Request_Cancelled)에 그것을 래핑하는 방법이었습니다. 감사. – koopaking3