Я настраиваю группу услуг, каждая из которых разговаривает друг с другом; с нижним связыванием я бы предположил, что если я «А» отправит сообщение «В» (живое) и «С» (не живое), что Б вернется, если обработка не займет больше времени, чем указано в sendTimeout, иначе это будет исключение TimeoutException. В случае «C», который потерпел неудачу и недоступен, я бы предположил, что он также вернется в пределах установленного времени sendTimeout. Для «B» это кажется правильным, но для «C» исключение EndpointNotFoundException поймано, но оно занимает намного больше, чем 5 секунд, определенных для sendTimeout. Я что-то пропустил в своей конфигурации. То же связывание используется для обслуживания и клиентаWCF EndpointNotFoundException занимает больше времени, чем TimeoutException
<bindings>
<netTcpBinding>
<binding name="SSS" maxBufferPoolSize="524288" maxBufferSize="134217728" maxReceivedMessageSize="134217728" receiveTimeout="infinite" sendTimeout="00:00:05" portSharingEnabled="true">
<readerQuotas
maxDepth="32"
maxStringContentLength="65535"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" protectionLevel="None"/>
<message clientCredentialType="None"/>
</security>
<reliableSession ordered="true"/>
</binding>
</netTcpBinding>
</bindings>
<service behaviorConfiguration="DefaultBehavior" name="hostObj">
<endpoint binding="netTcpBinding" bindingConfiguration="SSS" contract="Contract.IHost" />
</service>
<endpoint name="serverAppHostEndpoint" binding="netTcpBinding" bindingConfiguration="SSS" contract="Contract.IHost" />
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="False" />
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>