我正在使用框架3.5中的WebScriptServiceHostFactory构建WCF pox和json rest服务,并且我通过抛出WebProtocolException将状态代码发送到客户端。在这样做时,异常格式不正确,并且在浏览器上看起来很糟糕,如下所示......
是否有办法在浏览器上格式化异常或抑制服务中的异常并仅将状态代码发送给客户端。
{ “ExceptionDetail”:{ “HELPLINK”:空 “的InnerException”:{ “HELPLINK”:空 “的InnerException”:
null,“Message”:“抛出类型'System.Exception'的异常。”,“StackTrace”:null,
“类型”: “System.Exception的”}, “消息”: “SomeDescription”, “堆栈跟踪”:”
在Platform.Licensing.Services.AuthorizationAttribute.BeforeCall(String operationName,
对象[]输入)在D:\ Projects \ trunk-LicensingAPI \ Code \ Platform.Licensing.Services \ AuthorizationAttribute.cs:第72行\ u000d \ u000a
System.ServiceModel.Dispatcher.DispatchOperationRuntime.ProcessMessage5上的System.ServiceModel.Dispatcher.DispatchOperationRuntime.InspectInputsCore(MessageRpc& rpc)\ u000d \ u000a at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\ u000d \ u000a(MessageRpc& ; rpc)\ u000d \ u000a at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\ u000d \ u000a
在System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)“,
“类型”: “Microsoft.ServiceModel.Web.WebProtocolException”}, “ExceptionType”:
“Microsoft.ServiceModel.Web.WebProtocolException”, “消息”: “SomeDescription”,
“StackTrace”:“在Platform.Licensing.Services.AuthorizationAttribute.BeforeCall(String operationName,Object []输入)
在D:\ Projects \ trunk-LicensingAPI \ Code \\ AuthorizationAttribute.cs:第72行\ u000d \ u000a
在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InspectInputsCore(MessageRpc& rpc)\ u000d \ u000a
在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\ u000d \ u000a
在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)\ u000d \ u000a
在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\ u000d \ u000a
在System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)“}
答案 0 :(得分:0)
此异常是由多种原因造成的。我正在使用工厂以及错误的服务配置。此外,我必须使includeExceptionDetailInFaults = false并使用自定义行为和IErrorHandler来处理WebProtocolException以进行休息。