我有一個已經運行了很長時間的WCF服務。我最近做了一些改變,它工作正常,但本地與此消息的服務器端崩潰(僅針對我改變了方法,所有其他方法做工精細)嘗試catch塊在wcf中不工作
無法調用服務。可能的原因:該服務離線 或無法訪問;客戶端配置與 代理不匹配;現有的代理無效。有關更多詳細信息,請參閱 的堆棧跟蹤。您可以嘗試通過啓動新代理,將 恢復爲默認配置或刷新服務來進行恢復。
問題是我沒有辦法調試問題,因爲它只在服務器上失敗。更令人沮喪的是,我確切地知道代碼失敗的地方,我只是不能說出爲什麼,因爲我永遠不能拉出異常數據。這是WCF服務中正在使用的方法。
public bool GenerateSpec(string product)
{
specService.GenerateSpec(product);
return true;
}
然後調用它。
public bool GenerateSpec(string productNumber)
{
try
{
SessionFactory factory = new SessionFactory();
Session = factory.CreateSession(DataConnection.PM);
productService = new ProductService(Session);
// other code
return true;
}
catch (Exception e)
{
emailService.SendMessage(e.Message + "\n\n" + e.StackTrace);
return false;
}
}
我知道它未能在Session = factory.CreateSession(DataConnection.PM);
線,但不知道爲什麼,它似乎只是忽略我的try catch塊和反正快死了。可能會發生什麼?
這看起來無法找到方法。使用Fiddler查看電話返回的內容。 – JBrooks
您可以設置Web.Config,以便將服務器端異常詳細信息返回給客戶端,以便您可以看到真正的異常。在您的serviceBehavior中,嘗試設置 –
Jim
聽起來像SendMessage調用會引發異常。 – djs