.net - 拦截 WCF 中的反序列化错误

标签 .net wcf deserialization soapfault

安全团队最近问我是否可以更改从 WCF 服务中的反序列化问题返回的消息。有问题的错误是他们拦截了消息并传递了一个超出 Int32 范围的整数。

The value '2147483649' cannot be parsed as the type 'Int32'.

我的回答是,反序列化过程发生在我的单行服务执行之前,这是不可能的。然而,这个目标有可能实现吗?

最佳答案

听起来你有 includeExceptionDetailInFaults =“真”。 True 是在进行生产部署之前应设置为 false 的默认值。一旦这是错误的,您将收到一条通用错误消息。这应该足以让安全人员满意。

一个更好的选择是实现 IErrorHandler .这是允许您处理异常的扩展点,即使它发生在执行到达您的服务代码之前。

关于.net - 拦截 WCF 中的反序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609369/

相关文章:

c# - Unity3D,为什么 "scripting runtime version"是.NET3.5而 "api compatibility level"是.NET2.0? PlayerSettings 中的两个选项究竟是什么意思?

c# - Unity - 拦截 WCF 服务类?

wcf - 有没有办法让无 session WCF channel 出错?

json - 在 webmethod 中使用 json.net 序列化器

c# - 为什么 Directory::EnumerateFiles 和 DirectoryInfo::EnumerateFiles 抛出不同的异常?

.net - 如果在 SqlDataReader 关闭之前我们无法检索输出参数,那么为什么......?

c# - 从 LogIn 操作方法中的 returnurl 获取路由值

web-services - 使用 2-Way SSL 的 SSRS 服务器 Web 服务 - 错误 : HTTP Error 403. 7 – 禁止访问

javax.xml.bind.UnmarshalException : unexpected element (uri :"", 本地 :"id")。预期元素是(无)

c# - 为什么复制流然后使用 BinaryFormatter 反序列化比仅仅反序列化更快