저는 wcf-lib를 만듭니다. 프로세스 간 통신이 필요합니다. lib를 사용하는 앱을 열면 서로를 알립니다. UdpAnnouncementEndpoint를 사용합니다. 인트라넷에서 공지 사항을 받게됩니다. 무엇을 할 수 있습니까?WCF : AnnouncementService를 설정하는 방법은 localhost on/off 행 메시지 만받습니다.
private void ActionInitClientService()
{
// Create ClientSelt ServiceHost
_clientServiceHost = new ServiceHost(_clientInstance);
_clientServiceHost.AddServiceEndpoint((typeof (IClientService)), new NetNamedPipeBinding(), Info.Address);
// Make the client discoverable via Udp
// and Broadcast itself to Online announcement
_clientServiceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint());
var discoveryBehavior = new ServiceDiscoveryBehavior();
discoveryBehavior.AnnouncementEndpoints.Add(new UdpAnnouncementEndpoint());
_clientServiceHost.Description.Behaviors.Add(discoveryBehavior);
_clientServiceHost.Opened += OnOpenedClientServiceHost;
_clientServiceHost.Closed += OnClosedClientServiceHost;
}
를 호스트에 AnnouncementsListener를 추가 :
와 나는 다음과 같은 코드로 엔드 포인트를 작성
private void ActionInitAnnouncementsListener()
{
var announcementService = new AnnouncementService();
announcementService.OnlineAnnouncementReceived += OnOnlineAnnouncementReceived;
announcementService.OfflineAnnouncementReceived += OnOfflineAnnouncementReceived;
_announcementsListener = new ServiceHost(announcementService);
_announcementsListener.AddServiceEndpoint(new UdpAnnouncementEndpoint());
}
Mihai, filter work.and 감사의 범위를위한 속성이 있는지 알고 싶습니다. – GeminiYellow
"발표 범위"의 의미를 정확하게 이해하고 있는지 확신 할 수 없습니다. 조금 설명해 주시겠습니까? –
내가 틀릴 수도 있지만 ... 발표 엔드 포인트뿐만 아니라 모든 서비스 엔드 포인트에 검색 동작을 적용하십시오. 이것이 엔드 포인트에 대한 | 위를 제공해야합니다 (엔드 포인트가 사용자가 찾고있는 경우). 또한 다음 링크를 확인하십시오. http://msdn.microsoft.com/en-us/magazine/ee335779.aspx –