我在服务器上有以下代码:
if (actualRowCount > maxRows)
{
throw new DomainException("OverMaxRowLimitException",
new OverMaxRowLimitException(string.Format(MaxRowsMessage,
actualRowCount, maxRows)));
}
DomainException
这将使用InnerException
属性集创建一个新的。我已经验证这是在调试器中设置的。
自定义异常是这样定义的:
public class OverMaxRowLimitException : Exception
{
public OverMaxRowLimitException(string message)
{
this.Message = message;
}
public new string Message { get; set; }
}
这应该向客户端返回一个合理的错误消息,以便可以告诉用户有太多行。因此,在加载完成处理程序中,我们希望拥有:
if (result.HasError)
{
ShowError(result.Error.InnerException.Message);
}
不幸的是,该InnerException
物业是null
。所以我们只需要检查外部异常消息的文本,它也没有正确地传输到客户端。
有人建议我需要:
<customErrors mode="Off" />
在网络配置文件中。我已经尝试过了,但它不起作用。
也有人建议我需要:
[KnownType(typeof(OverMaxRowLimitException))]
关于数据合同。现在,除非我把它放在错误的地方,否则这也行不通。
我还尝试添加[Serializable]
自定义异常并将其替换为通用Exception
. 这些都不起作用。
那么,为什么InnerException
属性为空。我错过了什么?