netTcpBinding을 사용하는 응용 프로그램이 갑자기 작동하지 않는 것으로 나타났습니다. 서비스를 호스팅하는 서버의 이벤트 로그를 검사 후에, 나는 다음과 같은 경고 (많은 사람들의 시리즈 중 하나를) 발견 :maxReceivedMessageSize에 의한 WCF TimeoutException
예외 정보 : 예외 형식 : 완전한 오픈 작업을하지 않았다 예외 메시지 TimeoutException 할당 된 시간 초과는 00:01:00입니다. 이 작업에 할당 된 시간은 일 수 있습니다.
서버 스택 추적 : System.ServiceModel.Channels.ServiceChannel에서 System.ServiceModel.Channels.CommunicationObject.Open (시간 범위 시간 초과)에서 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (시간 범위 시간 초과)에서. 의 OnOpen (타임 아웃 시간 범위)에서 System.ServiceModel.Channels System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (시간 범위 초과, CallOnceManager 캐스케이드)에서 System.ServiceModel.Channels.CommunicationObject.Open (시간 범위 초과)에서
.ServiceChannel.EnsureOpened (TimeSpanSystem.ServiceModel.Channels.ServiceChannel.Call (문자열에서 17,451,515,시간 초과) 작용 부울 일방은 ProxyOperationRuntime 동작 ( System.ServiceModel.Channels.ServiceChannelProxy.InvokeService에서 [] 인, 개체 [] 아웃, 타임 스팬 타임 아웃) 개체 나의 새로운 바인딩 외모 때문에 System.ServiceModel.Channels.ServiceChannelProxy.Invoke (iMessage를 메시지)
문제를 해결하려면에서 IMethodCallMessage methodCall을, ProxyOperationRuntime 동작을), 나는 10 maxReceivedMessageSize의 크기를 증가했다 좋아요 :
> <netTcpBinding>
> <binding name="largeBufferNetTcpBinding" listenBacklog="100" maxBufferSize="519730000" maxConnections="100"
> maxReceivedMessageSize="519730000" portSharingEnabled="true">
> <readerQuotas maxArrayLength="519730000"/>
> <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
> <security>
> <message clientCredentialType="Windows"/>
> </security>
> </binding>
> <binding name="defaultNetTcpBinding" portSharingEnabled="true"/>
> <binding name="defaultNetTcpMexBinding" portSharingEnabled="true">
> <security mode="None"/>
> </binding> </netTcpBinding>
maxReceivedMessageSize가 위에 표시된 TimeoutException과 어떻게 관련되는지 이해할 수 없습니다. 이 문제를 더욱 해결하고 서비스의 안정성을 높이려면 어떻게해야합니까?
매우 느린 네트워크를 사용하지 않는 한 개인적으로 어떻게 연결되는지는 알 수 없습니다. 사용할 수있는 코드에서 어떤 방법으로 추적합니까? – ChrisBint
우리는 우리의 서비스를 추적하고있다. 그러나 WCF/.NET에 의해 오류가 던져지기조차하지 못한다. – laconicdev