ASP.NET互換モードのIIS Webサイトとして.NET 4 WCFサービスを実行しています。いったんサービスメソッドが文字列パラメータを受け取り、 '&'を含む値があると、ASP.NETパイプラインは検証例外を発生させます。私は次の設定を割り当てました:WCFサービスのASP.NET要求の検証を無効にする方法はありますか?
<system.web>
<httpRuntime requestValidationMode="2.0"/>
<pages validateRequest="false"/>
</system.web>
そして、このエラーは解決しません。エラーは、入力がエンコードされているかどうかに関係なく発生します。私は可能性のある解決策hereを見つけましたが、これはSystem.Web.Util.RequestValidatorのカスタム実装を提供することを示唆していますが、構成設定のみで行うことができる選択肢があるかどうかは疑問でした。
EDIT: 私はまた、しかし、提案された解決策で問題が解決しない、thisを見つけました。
わかりました:wcfサービスを呼び出すプログラムは面白くないし、実際の問題を解決するコードにアクセスできません。それは正しいのでしょうか? – NotMe
私は呼び出しコードとサービスの両方にアクセスできます。私は展開しなくても問題を解決したいと思っていました。さらに重要なことは、カスタムバリデータを提供する以外にも、問題を解決するための方法があるかどうかを知りたかったのです。私はまだ入力を検証することが欲しいです、私はちょうど 'a&b'のような文字列のエラーにしたくないです。 – eulerfx
私は本当にあなたが提出した値を正しくエンコードする方が良いと思っています。だから、入力が上でエンコードされていてもそれが起こったと言えば、それはどのようにエンコードされたのですか? - いくつかの方法があります。 – NotMe