我有一个使用basicHttpBinding endpoints 的WCF Windows服务,侦听TCP / 12345 . 我添加了一个udpDiscoveryEndpoint,可以在本地发现服务没有问题 .
<services>
<service name="BigBadCompany.Delivery.DeliveryService" behaviorConfiguration="DeliveryServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://*:12345/Delivery/service"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" contract="BigBadCompany.Delivery.IDelivery" bindingConfiguration="DeliveryServiceBinding"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint kind="udpDiscoveryEndpoint" />
</service>
</services>
为了让它在本地子网上通过网络发现,我需要添加防火墙规则以允许流量 . 如果我允许所有UDP流量,我只能使用它 . 如果我将规则限制为仅限我的服务,则发现会中断 . 我也尝试将它限制在一个端口(我没猜到可能与TCP端口相同,我无法找到有关UDP广播使用的端口的任何信息)它也会停止 .
什么是适当的防火墙规则,只允许udpDiscoveryEndpoint流量而不打开所有UDP端口入站?
1 回答
您应该只为端口3702添加例外 . 请在此处查看更多信息:[https://msdn.microsoft.com/en-us/library/dd352335.aspx][1]