我在服务器Windows 2008上托管了.Net服务,并且.Net客户端通过互联网连接到此服务器。
我想使用wsDualHttpBinding实现与Microsoft示例相同的发布订阅模型,其中客户端可以订阅服务上的事件,并在数据可用时将数据推送到它们。
我在服务器上实现了服务,并且能够成功浏览。但是当我尝试从客户端进行通信时,它最终会超时(我在文件客户端和服务器上增加了配置文件的时间属性)
客户端配置文件:
<client>
<endpoint name="" address="http://x.x.x.x/servicemodelsamples/service.svc" binding="wsDualHttpBinding" bindingConfiguration="Binding1" contract="Microsoft.ServiceModel.Samples.ISampleContract"/>
</client>
<bindings>
<wsDualHttpBinding>
<!--If running in cross machine then replace localhost with the FQDN of the machine on whihc datasource.exe is run-->
<binding name="Binding1" clientBaseAddress="http://xxxx:xxxx/myClient/" closeTimeout="00:05:00"
openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00"
bypassProxyOnLocal="false" maxBufferPoolSize="524288" maxReceivedMessageSize="500000000"
useDefaultWebProxy="true">
<security mode="None">
<message clientCredentialType="None" negotiateServiceCredential="false" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
答案 0 :(得分:1)
WSDualHttpBinding
不适用于互联网上的普通客户。
这个答案解释了原因:Connecting over internet to WCF service using wsDualHttpBinding times out
由于您的客户端是.NET,因此您应该能够使用双工NetTcpBinding