0
我有一個NetNamedPipeBinding和一個bool isAlive()方法,我想用它來檢查ServiceHost是否還活着。檢查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上註冊Faulted狀態。我假設它託管在託管應用程序中,請確保您的所有服務調用都是使用try/catch,並且不要拋出catch,發回錯誤合約。 – ilansch