servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 未从servicestack筛选器获取命名空间引发的异常

C# 未从servicestack筛选器获取命名空间引发的异常,c#,servicestack,C#,servicestack,几个月前,我实现了几个过滤器,并设置了 [assembly: ContractNamespace("http://schemas.servicestack.net/types", ClrNamespace = "My.NameSpace")] 在我的程序集中,并确保所有由DTO创建的文件都位于正确的命名空间“my.namespace”下 如果我在服务中引发异常(使用RestServiceBase),我的异常将被正确序列化,并且在错误响应DTO中将命名空间设置为“” 如果我在筛选器中引发异常,

几个月前,我实现了几个过滤器,并设置了

[assembly: ContractNamespace("http://schemas.servicestack.net/types",  ClrNamespace = "My.NameSpace")]
在我的程序集中,并确保所有由DTO创建的文件都位于正确的命名空间“my.namespace”下

如果我在服务中引发异常(使用RestServiceBase),我的异常将被正确序列化,并且在错误响应DTO中将命名空间设置为“”

如果我在筛选器中引发异常,则在错误响应DTO中设置命名空间“”,如上所述。所有这一切都很好,而且奏效了

但是,由于某种原因,今天在筛选器中引发异常时,错误响应DTO中的命名空间为空。我还在错误响应DTO中获取StackTrace元素,以设置我的异常堆栈跟踪(当一切正常时,它是空的)

由于我的客户端检查命名空间“”,因此筛选器中异常的所有错误处理未在客户端上正确显示


我应该在哪里检查有什么想法吗?

可能是设置问题-SetConfig(newendpointhostconfig{DebugMode=true});来自文档:默认情况下,响应DTO中的显示堆栈跟踪被禁用,但它们对于开发来说是一个很好的选择,您可以使用上面的方法启用它们。当前DebugMode为false,我仍然获得元素。是名称空间为空导致了这个问题。另外,如果我将debugmode设置为true,那么我得到的堆栈跟踪将提供有关dto的信息,等等,当设置为false时,它将提供我的代码堆栈跟踪。它再次显示了我在服务过滤器中缺少的名称空间。