0

我在我的中添加了一个全局错误处理程序,global.asax但无论我尝试什么,我似乎都无法阻止 IIS 预设响应

<!DOCTYPE html>
<html>
    <head>
        <title>A potentially dangerous Request.Path value was detected from the client (&amp;).</title>
...

我宁愿它发送一个WebFaultException风格信息

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">My custom error message here</string>

我怎样才能做到这一点?

4

1 回答 1

1

我认为您遇到的是 IIS 的默认行为,而不是 WCF 中的某些行为。IIS 甚至在请求到达 WCF 之前就将其取出,发回警告。我认为您可以在 web.config 中使用类似的内容关闭 IIS 请求验证

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

或这个:

<httpRuntime requestPathInvalidCharacters="" />

然后,一旦请求通过 IIS,您就可以在 WCF 中使用检查错误字符的自定义消息检查器来处理异常。

以下是有关消息检查器的文档的链接:

http://trycatch.me/adding-custom-message-headers-to-a-wcf-service-using-inspectors-behaviors/

于 2013-07-18T13:25:45.690 回答