我在一個控制檯應用程序中託管了WCF服務,該應用程序預計將全天候運行並響應來自多個應用程序的請求。如果它連續獲取請求,或者甚至在4小時的空閒時間之後,它會很好用。寫入主機服務的代碼如下,自我託管的WCF服務在空閒幾個小時後沒有響應
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(abcdService)))
{
host.Open();
Console.ReadLine();
host.Close();
}
}
在WCF服務中,我正在將輸出寫入控制檯。當它拋出超時錯誤時,我可以看到WCF服務中的方法從未收到請求。
是否有任何設置需要我自己託管的WCF服務響應簡單的呼叫,即使經過幾個小時的空閒時間?
我接收到的誤差在下面給出,
請求信道超時而00後等待答覆:00:59.9989999。增加傳遞給請求調用的超時值或增加綁定上的SendTimeout值。分配給此操作的時間可能是超時時間的一部分。 ---> System.TimeoutException:對HTTP的HTTP請求已超過00:01:00的分配超時。分配給此操作的時間可能是超時時間的一部分。 ---> System.Net.WebException:操作已超時。中止測試執行。
注意:當我重新啓動託管WCF服務的控制檯應用程序時,它又開始正常工作。
顯示配置,實現,客戶端代碼,服務合同 –
我與自己託管的服務具有完全相同的問題。在正常使用和重負載測試期間,它可以正常工作,但是在夜晚的某個時候 - 當沒有人使用它時,它會崩潰,我無法再從我的客戶端應用程序/瀏覽器訪問它。你有沒有找到你的問題的原因? –
還沒有。但我們正在採取一種解決方法來減少問題的發生。基本上,我們通過Windows調度程序每天午夜重新啓動控制檯應用程序(.exe)。這減少了碰撞計數。 – Vim