Я пытался реализовать DuplexCommunication между WPF и WCF, связь работает хорошо при внутреннем тестировании, в сети, когда мы пытались получить доступ к этой внешней сети после публикации ее снаружи, мы можем получить доступ к услуге черезвеб-браузер, но клиент WPF выдает ошибку, когда мы пытаемся открыть соединение.ниже приведены настройки как на стороне сервера, так и на стороне клиента.Сервер:
<wsDualHttpBinding>
<binding closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="None" />
</binding>
</wsDualHttpBinding>
<service behaviorConfiguration="DuplexServices.DuplexServiceBehavior" name="DuplexServices.DuplexService">
<endpoint address="dual" binding="wsDualHttpBinding" contract="DuplexServices.IDuplexService" >
</endpoint>
</service>
Клиент:
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_DuplexService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" >
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="None">
</security>
</binding>
</wsDualHttpBinding>
<client>
<endpoint address="http://XXX.com/DuplexServices/DuplexService.svc/dual"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_DuplexService"
contract="DuplexServiceeReference.DuplexService" name="WSDualHttpBinding_DuplexService">
</endpoint>
</client>
Я попытался указать значения baseAddresses и identity со значением dns на стороне сервера, также попытался указать clientBaseAddress на стороне клиента, но все жеэто не будет работать вне сети.
всегда возникает ошибка тайм-аута при попытке открыть дуплексное соединение из приложения WPF: Ошибка: «Операция открытия не завершена в течение отведенного времени ожидания 00: 00: 09.4911018. Возможно, время, отведенное для этой операции, былочасть более длительного тайм-аута. "
Я думаю, что что-то не так в части конфигурации, но не уверен, что это, любая помощь в этом очень ценится.
Спасибо.