두 서비스를 연결하려고합니다. Service1은 service2에 이벤트 알림을 보냅니다.WCF 두 서비스 간 콜백
이 두 서비스간에 콜백을 사용하고 싶습니다. service1은 service2에 이벤트를 보내고 service2는 이벤트를 클라이언트에 전달합니다.
두 서비스간에 콜백을 사용할 수 있습니까?
나는 이미 wcf 콜백 샘플을 조사했지만 서비스 통신을 위해 서비스 간에는 아무것도 찾을 수 없다.
도움이 필요합니다. 1 개의 서비스 코드를 아래에서보십시오. 내 질문 : 어떻게 다른 서비스의 코드가 콜백과 같이 보이게 될까요?
아니면이 경우 서비스 중 하나가 클라이언트 역할을합니까? 그리고 어떻게 그렇게 보이게 될까요?
서비스 1 코드 : (인터페이스 클래스)
public interface IMyEvents
{
[OperationContract(IsOneWay = true)]
void Event1();
}
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IMyEvents))]
public interface SampleInterface
{
[OperationContract]
void DoSomethingAndFireEvent();
[OperationContract]
void SubscribeEvent();
}
이 서비스 클래스
public class SampleHandlerSimulator : SampleInterface
{
static Action m_Event1 = delegate { Console.WriteLine("Catch");};
public void SubscribeEvent()
{
IMyEvents subscriber = OperationContext.Current.GetCallbackChannel<IMyEvents>();
m_Event1 += subscriber.Event1;
}
public static void FireEvent()
{
m_Event1();
}
public void DoSomethingAndFireEvent()
{
CCStateHandlerSimulator.FireEvent();
}
감사합니다 , 그러나 나는 아직 달릴 수 없다. netuplexpipebinding도 이중으로 사용하고 있습니다. 두 서비스 모두에서 netnamedpipebinding을 구현해야합니까? 두 번째 서비스가 어떻게 구현되어야하는지에 대한 코드 위에 있습니까? 보시다시피 첫 번째 서비스의 코드를 제공했기 때문입니다. 그리고 귀하의 코드는 내 service1 코드에 실제로 들어 맞지 않습니다. – Annonymuze
파이프에 대해서는 잘 모릅니다 만 부모 서비스에서 끝점을 설정하고 자식에 서비스 참조를 추가하면 자식 서비스가 해당 부모 서비스를 구성에 반영합니다. 게시 한 코드는 귀하에게 특정한 것이 아니지만 필요한 태그와 사물을 강조 표시합니다. 어쩌면 부모 서비스 인 app.config를 게시 할 수 있습니까? – ldgorman
PubSub은 당신이 성취하고자하는 것에 따라 더 잘 작동 할 것입니다. 듀플렉스 바인딩과 관련하여 여러 가지 문제를 겪었으며 그만큼 효율적이지는 않습니다. Pub-Sub의 좋은 예와 그렇게하기위한 프레임 워크는 다음에서 볼 수 있습니다. http://www.idesign.net/Downloads – PTiddy