我正在使用RESTier 0.6.0库,并希望在删除之前对资源执行一些检查。如果检查失败,我抛出一个Exception来停止删除操作。但是,我用于实例化Exception的错误消息不会在最高级别被推出。我只能在从Visual Studio提供Web API时将该消息视为内部异常。有没有办法让这个错误信息在最高级别推出?
// please, notice: not necessary List, not necessary of int
string[] test = new string[] {"A", "B", "C"};
List<string> slice = test.Slice(0, 1);
当前在EntityFrameworkApi中的OnDelete提交逻辑方法中抛出的任何异常都会导致如下错误:
{ “错误”:{ “code”:“”,“message”:“发生错误。” } }
......这对客户来说并不是特别有用。
更新:我在RESTier文档MkDocs version中注意到,给出了一个示例,其中抛出了ODataException(而不是Exception)。我在我的代码中更改了此项,但已发布的Restier服务返回的错误对象仍然只有基本的“发生错误”信息。
非常感谢帮助!
答案 0 :(得分:0)
在RESTier EntityFrameworkApi(例如inside和OnUpdate<EntitySet>
方法)中抛出异常时,异常被反序列化为内部异常(internalexception)的一部分。因此,为了查看RESTier API中抛出的任何异常,需要...
在HttpConfiguration上设置IncludeErrorDetailPolicy属性 像这样的课:
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always
Structure of error received by client
请参阅此帖子:OData controller returns different error for local and different for remote machine