이중 모드로 WCF 서비스를 개발하고 nettcpbinding을 사용합니다. 나는 .NET 4.5를 사용한다. 나는 단 하나의 클라이언트와 단 하나의 서버를 가지고 있으며 그 사이에 많은 로직이있다. 클라이언트는 항상 첫 번째 서버와의 통신을 시작합니다. 그 서버가 WCF 서비스 클래스 밖에서 클라이언트 함수를 호출 할 수 있기를 원합니다. 이 목적으로 이중 모드를 사용하려고합니다.WCF duplex : WCF 서비스 클래스 외부에서 호출 콜백
Callback.foo();
을하지만 할 때 외부 클래스를 호출 : 내 서비스의 OperationContract를 함수 내에서 내 콜백을 호출 할 때 나는 아무 문제가
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode = InstanceContextMode.Single)]
public class Service : IService
{
...
public IServiceCallback Callback
{
get
{
return OperationContext.Current.GetCallbackChannel<IServiceCallback>();
}
}
}
:
이
내 WCF 서비스입니다 서비스 예 :service = new Service();
service.Callback.foo();
OperationContext.Current의 NullReferenceException이 발생했습니다. 나는 SO와 다른 자원들에 관한 비슷한 문제들에 관한 많은 정보를 발견했으나 나의 문제를 결정하는 것을 도울 수는 없다. 내 문제에 대한 해결책이 있습니까? 아니면 콜백 전화에 대한 해결 방법이 될 수 있습니까? 현재로서는 내 목적에 맞는 WCF 서비스를 하나 더 만들 계획이지만 잘못된 해결책이라고 생각합니다. 관심을 가져 주셔서 감사합니다.