我有一個.NET 4 WCF服務作爲IIS網站與ASP.NET兼容模式運行。一旦服務方法接受一個字符串參數,並且當存在包含'&'的值時,ASP.NET管道會引發驗證異常。我已經分配了以下配置設置:如何禁用WCF服務的ASP.NET請求驗證?
<system.web>
<httpRuntime requestValidationMode="2.0"/>
<pages validateRequest="false"/>
</system.web>
並且錯誤仍然存在。無論輸入是否編碼,都會發生錯誤。我發現了一個潛在的解決方案here提示提供System.Web.Util.RequestValidator的自定義實現,但我不知道是否有可以只配置設置來進行選擇。
編輯: 我也發現this,但是提出的解決方案不能解決問題。
只是讓我們很清楚:該程序調用WCF服務是以次充好,你沒有訪問到它的代碼來解決真正的問題?這是對的嗎? – NotMe
我可以訪問調用代碼和服務。我想解決這個問題,而無需部署。更重要的是,我想知道是否有一種可接受的方式來解決問題,而不是提供自定義驗證器。我仍然希望輸入被驗證,我只是不希望它在諸如'a&b'之類的字符串上出錯。 – eulerfx
我真的認爲你最好能夠正確編碼你提交的值,而不是降低防禦措施的權重。所以,當你說它發生時,即使輸入是上面編碼的,它是如何編碼的? - 有幾種方法。 – NotMe