如何从数据库中提取wcf ria服务引发的错误?
问题描述:
我使用EF + WCF ria服务来回应用程序。这是我的情况:如何从数据库中提取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);
本地运行应用程序时,一切都很好,我可以得到所产生的错误信息通过SP像:
提交操作失败:我的测试消息
但是,当我将应用程序部署到另一台计算机,我不能错误消息,错误消息是这样的:
提交操作失败:类型'System.ServiceModel.DomainServices.Client.DomainOperationException'的异常被抛出。
看起来像是与Web服务器(IIS)相关的东西。如何解决这个问题?
答
检查你的CustomErrors设置为在你的web.config中。此外,如果您在域服务中重写OnError,则可以设置断点以查看域异常内部的内容,并添加客户端可以解释的错误代码(我发现这很有帮助)。