我有一個客戶端服務器應用程序。客戶登錄我的服務器上的帳戶。問題在於我的服務器有時會崩潰,雖然我用try-catch語句包裝了所有類型,但我沒有收到任何消息。客戶端 - 服務器應用程序崩潰
我已經實現的服務器在這裏:。
有沒有人遇到這樣的崩潰?有沒有一個地方可以找到應用程序的錯誤日誌?
我有點絕望,所以任何想法都會很棒。謝謝。
我有一個客戶端服務器應用程序。客戶登錄我的服務器上的帳戶。問題在於我的服務器有時會崩潰,雖然我用try-catch語句包裝了所有類型,但我沒有收到任何消息。客戶端 - 服務器應用程序崩潰
我已經實現的服務器在這裏:。
有沒有人遇到這樣的崩潰?有沒有一個地方可以找到應用程序的錯誤日誌?
我有點絕望,所以任何想法都會很棒。謝謝。
由於多線程操作,即使您將所有函數包裝在try-catch塊中,應用程序也可能因未處理的異常而崩潰。
try
{
var t = new Thread(()=>
{
Thread.Sleep(5000);
throw new Exception();
});
t.Start();
//t.Join();
}
catch
{
//you can't deal with exception here
//even though you uncomment `t.Join`
//the application will crash even there is a try-catch wrapped
}
如果您在Visual Studio中以調試模式運行,則可以考慮啓用CLR異常以傳播到用戶控制。我相信它們在默認情況下被禁用,這有時會導致掛起的應用程序沒有任何調試器反饋。 This article on MSDN可能是有趣的。
您是否保留示例代碼的這一部分? 添加Console.WriteLine權抓後...
catch
{
//a socket error has occured
break;
}
順便說一句,我訪問來自多個線程的變量,而無需使用鎖聲明。這可能是墜機問題嗎? – Alex 2010-11-19 08:15:24
當你的服務器崩潰時,你會得到什麼錯誤?在那裏應該有一個堆棧跟蹤,指向你的代碼的一部分。一旦你發現,如果你自己沒有發現問題,向我們展示導致問題的代碼。 – 2010-11-19 08:19:43
不,沒有!太奇怪了!該程序只是崩潰!我正在尋找各種可能性。服務器代碼不起作用,或者我編寫的其他代碼有問題 – Alex 2010-11-19 08:36:43