2011-04-20 5 views
0

서버의 응답에 문제가 있습니다. 서버 측에서 작업이 1 분 이상 걸리면 클라이언트가 응답을받을 수는 없지만 서버 측에서 응답을 보내는 것보다 로그가 응답합니다. 서버 측에서 작업이 1 분 미만이면 모든 것이 좋습니다.고객이 답변을 얻을 수 없습니다.

클라이언트 설정 :

서버 측
<system.serviceModel> 
<behaviors> 
<endpointBehaviors> 
<behavior name="NewBehavior0"> 
<dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
<clientCredentials /> 
</behavior> 
</endpointBehaviors> 
</behaviors> 
<bindings> 
<wsHttpBinding> 
<binding name="WSHttpBinding_B2BServices" closeTimeout="00:10:00" 
openTimeout="00:01:00" receiveTimeout="00:21:00" sendTimeout="00:21:00" 
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true" 
allowCookies="false"> 
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
<reliableSession ordered="true" inactivityTimeout="00:15:00" 
enabled="true" /> 
<security mode="TransportWithMessageCredential"> 
<transport clientCredentialType="None" proxyCredentialType="None" 
realm="" /> 
<message clientCredentialType="UserName" negotiateServiceCredential="true" 
algorithmSuite="Default" /> 
</security> 
</binding> 
</wsHttpBinding> 
</bindings> 
<client> 
<endpoint address=https://.../MatrixConnector/Services.svc 
behaviorConfiguration="NewBehavior0" 
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_B2BServices" 
contract="MatrixServiceReference.B2BServices" name="WSHttpBinding_B2BServices"> 
<identity> 
<dns value="..." /> 
</identity> 
</endpoint> 
</client> 
</system.serviceModel> 

:

The communication object, System.ServiceModel.Channels.ReplyChannel, cannot be used for communication because it has been Aborted. 

모든 속성이 모두 20 이상으로 설정 :

<system.serviceModel> 
<diagnostics> 
<messageLogging logEntireMessage="true" logKnownPii="true" logMalformedMessages="true" 
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" 
maxMessagesToLog="2147483647" maxSizeOfMessageToLog="2147483647" /> 
<endToEndTracing propagateActivity="true" activityTracing="true" 
messageFlowTracing="true" /> 
</diagnostics> 
<bindings> 
<wsHttpBinding> 
<binding name="WsHttpBinding" 
closeTimeout="00:21:00" openTimeout="00:02:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" 
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
messageEncoding="Mtom"> 
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
<reliableSession enabled="true" inactivityTimeout="00:20:00" /> 
<security mode="TransportWithMessageCredential"> 
<transport clientCredentialType="None" /> 
<message clientCredentialType="UserName" /> 
</security> 
</binding> 
</wsHttpBinding> 
</bindings> 
<services> 
<service behaviorConfiguration="serviceBehavior" name="mediaSens.Services.B2BServices"> 
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="WsHttpBinding" 
contract="mediaSens.Services.IB2BServices"> 
<identity> 
<dns value="..." /> 
</identity> 
</endpoint> 
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
<host> 
<baseAddresses> 
<add baseAddress=http://.../ /> 
</baseAddresses> 
</host> 
</service> 
</services> 
<behaviors> 
<serviceBehaviors> 
<behavior name="serviceBehavior"> 
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
<dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
<serviceDebug includeExceptionDetailInFaults="true" /> 
<serviceCredentials> 
<userNameAuthentication userNamePasswordValidationMode="Custom" 
customUserNamePasswordValidatorType="mediaSens.Services.CustomUserNameValidator, mediaSens.Services" /> 
</serviceCredentials> 
<serviceThrottling maxConcurrentCalls="1000" maxConcurrentSessions="2000" 
maxConcurrentInstances="1500" /> 
</behavior> 
</serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="1" /> 
</system.serviceModel> 

지금은 30 분 후 서버 측의 오류를 얻을 분 및 클라이언트가 1 분 이상 걸릴 작업을 처리 할 수 ​​없습니다. Additionaly 나는했습니다 :

client.InnerChannel.OperationTimeout = new TimeSpan(0, 30, 0); 

...하지만 결과를.

내가 응용 프로그램 풀 설정 증가했습니다 핑 최대 응답 Timie : 1140 초 종료 시간 제한 : 1200 초 핑 기간 : 30 초.

나는 또한 재활용을 해제했다. 같은 행동.

나는 ... relabionSession 끌 수 있으나 아무것도

편집을 시도했다. 나는 클라이언트가 90 초 후에 응답을 얻을 수 없다는 것을 발견했다. 이 값은 IIS의 exececutionTime에 대한 기본값입니다. 이 값을 3600 초로 늘리면 디버그가 꺼지지 만 클라이언트는 그 시간이 지나도 응답을 검색 할 수 없습니다. net.tcp 서버와 같은 결과를 만들었지 만 localhost에는 그런 문제가 없습니다. 정말

+0

Windows Azure를 사용하고 있습니까? –

+0

"하지만 로그는 서버에서 응답을 보낸다고 말합니다." 어떤 로그? 실제로 연결이 전송되기 전에 연결이 중단 될 수 있습니다. –

+0

Windows Azure를 사용하고 있지 않습니다. 서버에서의 작업에서 결과를 반환하기 전에 데이터베이스에 로그를 저장하고 TraveViewer에 다음과 같이 accion이 있습니다. 호출 후 2 분 후에 "채널을 통해 메시지를 보냈습니다"(올바른 것입니다). 그리고 30 분 후 I'va는 오류가 발생했습니다 (위의 게시물 참조). – Bruno

답변

1
<system.web> 
    <hostingEnvironment idleTimeout="600" shutdownTimeout="700" /> 
    </system.web> 

이 코드는 문제를 해결 클라이언트 설정 파일에 ...

0

증가 개방 시간 제한을 혼동하고있다.

+0

효과가 없습니다. – Bruno

관련 문제