C# 使用网络搜索服务器的WCF发现。tcp://0.0.0.0:8888 住址
我正试图在WCF发现协议的帮助下找到我的服务器。 当我为服务器指定显式地址时,一切都很好,例如:net。tcp://192.168.36.18:8888. 但当我指定net时。tcp://0.0.0.0:8888 服务器上的地址,用于侦听我接收到的所有网络接口。tcp://0.0.0.0:8888 在客户机上。当然,我无法使用此地址连接到服务器。 wcf发现请求的物理响应来自实际服务器地址:192.168.36.100、192.168.36.239和192.168.36.61。我可以通过Wireshark看到它。但是我不能从FindResponse班上得到这些地址 如果服务器被配置为通过WCF发现侦听所有接口,是否有方法获取物理地址 客户端上的代码:C# 使用网络搜索服务器的WCF发现。tcp://0.0.0.0:8888 住址,c#,wcf,C#,Wcf,我正试图在WCF发现协议的帮助下找到我的服务器。 当我为服务器指定显式地址时,一切都很好,例如:net。tcp://192.168.36.18:8888. 但当我指定net时。tcp://0.0.0.0:8888 服务器上的地址,用于侦听我接收到的所有网络接口。tcp://0.0.0.0:8888 在客户机上。当然,我无法使用此地址连接到服务器。 wcf发现请求的物理响应来自实际服务器地址:192.168.36.100、192.168.36.239和192.168.36.61。我可以通过Wire
var discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
var findResponce = discoveryClient.Find(new FindCriteria(typeof(IRadioService)));
discoveryClient.Close();
服务器上的代码:
var serviceHost = new ServiceHost(new RadioServer());
serviceHost.Open();
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="RadioServer">
<serviceDiscovery />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="RadioServer" name="Server.RadioServer">
<endpoint address="RS" binding="netTcpBinding" contract="Common.IRadioService" />
<endpoint name="udpDiscovery" kind="udpDiscoveryEndpoint" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://0.0.0.0:8888/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
服务器上的配置:
var serviceHost = new ServiceHost(new RadioServer());
serviceHost.Open();
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="RadioServer">
<serviceDiscovery />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="RadioServer" name="Server.RadioServer">
<endpoint address="RS" binding="netTcpBinding" contract="Common.IRadioService" />
<endpoint name="udpDiscovery" kind="udpDiscoveryEndpoint" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://0.0.0.0:8888/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
对于任何想找到这个问题答案的人,你可以看看,这是我发布的另一个SO问题的答案。Alex,谢谢!那真的很有帮助!我以为stackoverflow上没有人能回答这个问题。是的,这很难。我花了好几天的研究才想出那个解决办法。我决心把它弄明白。我很高兴我的解决方案很有帮助。