我有一个已经运行了很长时间的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