我在SL app上使用EF + WCF ria服务。这是我的情况:
表更新映射到EF中的SP。在这个SP中,我使用RAISERROR('我的测试消息',11,1)来产生一些异常的错误消息。
然后通过覆盖SaveChanges:
捕获此错误 public override int SaveChanges(System.Data.Objects.SaveOptions options)
{
try
{
return base.SaveChanges(options);
}
catch (Exception ex)
{
throw ex;
}
}
在客户端,将异常处理为:
Context.SubmitChanges(s =>
{
try
{
if (s.HasError)
{
//......
errs = s.Error.Message;
}
//....
}
catch (Exception ex)
{
//....
errs = s.Error.Message;
}
}, null);
在本地运行app时,一切都很好,我可以得到SP产生的错误信息,如:
提交操作失败:我的测试消息
但是当我将应用程序部署到另一台计算机时,我无法收到错误消息,错误消息如下:
提交操作失败:抛出了类型'System.ServiceModel.DomainServices.Client.DomainOperationException'的异常。
看起来与Web Server(IIS)相关的东西。如何解决这个问题?
答案 0 :(得分:1)
检查web.config中的CustomErrors设置。此外,如果在域服务中覆盖OnError,则可以设置断点以查看域异常的“内部”,并添加客户端可以解释的错误代码(我发现这很有帮助)。