为了使公告工作,服务器端需要添加到在这样
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceDiscovery>
<announcementEndpoints>
<endpoint kind="udpAnnouncementEndpoint"/>
</announcementEndpoints>
</serviceDiscovery>
<serviceMetadata />
</behavior>
</serviceBehaviors>
一个服务器端的配置文件的服务行为添加标记,并添加一个新的终点在这样
<services>
<service behaviorConfiguration="MyServiceBehavior" name="TestService.Service">
<endpoint binding="netTcpBinding" bindingConfiguration="myBinding" name="NetTcpService" contract="TestService.IService" />
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="NetTcpMex" contract="IMetadataExchange"/>
<endpoint name="udpDiscoveryEpt" kind="udpDiscoveryEndpoint"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://[replace with ip address]:8080/Service" />
</baseAddresses>
</host>
</service>
主要点的服务器配置文件的服务标签是终点,我们的服务标签添加
<endpoint name="udpDiscoveryEpt" kind="udpDiscoveryEndpoint"/>
而对于客户端
static void Main(string[] args)
{
AnnouncementService announcementService = new AnnouncementService();
announcementService.OnlineAnnouncementReceived += service_OnlineAnnouncementReceived;
announcementService.OfflineAnnouncementReceived += service_OfflineAnnouncementReceived;
using(var announcementServiceHost=new ServiceHost(announcementService))
{
announcementServiceHost.AddServiceEndpoint(new UdpAnnouncementEndpoint());
announcementServiceHost.Open();
Console.WriteLine("Please enter to exit\n\n");
Console.ReadLine();
}
}
static void service_OfflineAnnouncementReceived(object sender, AnnouncementEventArgs e)
{
Console.WriteLine("Service Offline");
}
static void service_OnlineAnnouncementReceived(object sender, AnnouncementEventArgs e)
{
Console.WriteLine("Service Online");
}
而且最重要的一点是
using(var announcementServiceHost=new ServiceHost(announcementService))
{
announcementServiceHost.AddServiceEndpoint(new UdpAnnouncementEndpoint());
announcementServiceHost.Open();
Console.WriteLine("Please enter to exit\n\n");
Console.ReadLine();
}
这实际上开始监听服务通告事件。
如何在您的wcf服务中添加健康检查操作合同并从客户端ping此操作 – 2014-10-03 23:09:18