0
ServiceHost가 유효한지 확인하기 위해 bool isAlive() 메소드가있는 NetNamedPipeBinding이 있습니다. 어떤 호스트가 없어도ServiceHost가 살아 있는지 확인하십시오.
while (!stopThread)
{
Thread.Sleep(1000);
try{
try
{
pipeproxy.isAlive();
}
catch (CommunicationObjectFaultedException)
{
pipeproxy = pipeFactory.CreateChannel();
}
}
catch (EndpointNotFoundException)
{
//Show notification
stopThread=true;
}
catch{}
}
//Close Application
는 놀랍게도 내가 채널을 만들 수 있습니다, 그래서 난이 올바른 접근 방식인지 아닌지 확실하지 않다 :
현재이는 다음과 같습니다.
미리 감사드립니다.
'pipeFactory'에서 참조 된 서비스가 사용 가능하다면, 그것으로부터 새로운 채널을 생성 할 수 있습니다. 프록시는 서비스와 독립적으로 폴트 될 수 있습니다. – Tim
그래서 isAlive 검사를 수행하는 적절한 방법은 무엇입니까? –
살아 있는지 확인해야하는 이유는 무엇입니까? ServiceHost에 오류 상태를 등록하십시오. 나는 그것이 관리되는 응용 프로그램에서 호스트되고 있다고 가정하고, 모든 서비스 호출이 try/catch와 함께 있는지 확인하고 catch에 던지지 말고 오류 계약서를 다시 보냅니다. – ilansch