好久沒寫過winform程序了,用devexpress寫了個小工具,連一個本地的數據庫,感覺不會出什么異常,連接時就沒加捕獲,調通之后就沒管,因為特殊需求,需要把程序放到騰訊雲上運行,結果一運行就報錯,提示
CLR20r3 錯誤

沒有其他任何錯誤信息,去網上搜來搜去不行,但是本地或者其它雲上連接騰訊雲都可以正常運行,本來還想着是WindowsServer2012的問題,又裝了幾次.netFrameWork,無法解決,最后無奈抱着死馬當活馬醫的態度,加了一個
try catch ,居然捕獲到了,說是無法連接數據庫,去app.config里把連接地址換成127.0.0.1 不使用公網ip.可以了,我本地,其他服務器都可以連接,難道騰訊雲內部不認自己的公網IP,試了試果然騰訊雲不能通過公網IP訪問SqlServer自己,比較奇怪了。
另外發現一個知識點,sqlserver的主鍵也是不區分大小寫的
比如 userid z001,Z001會被判定為重復主鍵。
教訓:寫再簡單的程序,一定要注意使用try catch.另外看異常應該先查sql問題了
try catch簡單寫法,懶點,可少寫點代碼。
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionEventHandler;
private void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e)
{
try
{
MessageBox.Show(e.ExceptionObject.ToString());
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}