1
서비스 계약 정지WCF 이중 서비스는 콜백 통화
public interface IClientCallBackChannel
{
[OperationContract(IsOneWay = false)]
object DoCommand(Command command);
}
class ClientCallBackChannelImpl
{
public object DoCommand(Command command)
{
// freezes service
serverService.foo();
// OK
new Action(() =>
{
Thread.Sleep(1000);
serverService.foo();
}
).BeginInvoke(null,null);
}
}
나는 이중 서비스가 및 그 방법 내부 클라이언트 방법 'DoCommand'고 전화하고 할 때 foo 서비스 메서드에 대한 호출이 있고 내 서비스가 멈 춥니 다. foo를 비동기 적으로 호출하면 제대로 작동하지만 호출이 동기되어야합니다.
ServiceBehavior의 ConcurrencyMode를 Multiple로 설정하려고 시도했지만 여전히 차단됩니다. 서비스와 고객 모두에 – jacob
이 있습니까? 이상한 - 어쨌든, 다른 하나 내에서 하나를 호출하려면 OneWay만으로 리팩토링하십시오. – Carsten
및 한 가지 더 : 코드 절반 만 볼 수 있습니다. foo에서 DoCommand를 다시 호출하지 않도록하십시오. 여기에 무한 루프가있을 수도 있습니다. – Carsten