9

HTML をフォームに入力すると、.NET 4.0 がインストールされているテスト Web サーバー上のアプリケーションでエラーが発生します。次の通常のエラーが発生します。

潜在的に危険な Request.Form 値がクライアントから検出されました

これは、HTML 入力の自動検証を無効にする .NET 4.0 の変更が原因です。追加することで、ローカル開発マシンでこれを修正できます

<httpRuntime requestValidationMode="2.0" />

ディレクティブを<system.web>ルート web.config のセクションに追加すると、.NET<pages validateRequest="false" />は同じルート web.config にあるディレクティブを受け入れます。奇妙なことに、この変更を機能させるには、ローカル マシン (バージョン 5.1) で IIS を再起動する必要がありました。

ただし、ルート web.config をテスト サーバーにデプロイすると、まだ検証エラーが発生します。run > iisresetIIS (テスト サーバーではバージョン 6.0) の使用、停止、開始を試みました。また、サーバーを再起動して .NET を完全にクリアしました。私のアプリケーションは間違いなく新しいルート web.config を取得しています (私はこれをテストしました) が、<httpRuntime requestValidationMode="2.0" />ディレクティブは無視されているようです。

私のアプリケーションは、ローカル マシンとテスト サーバーの両方で .NET 4.0 アプリケーションとして構成されています。アプリケーションを再構築して、テスト Web サーバーに再デプロイしてみました。これを機能させるために何をする必要があるかを誰かが提案できますか?

前もって感謝します、クリス

4

1 に答える 1

3

MVC3 を使用している場合は、グローバル フィルターを に追加してみてくださいGlobal.asax.cs

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidateInputAttribute(false));
}
于 2012-11-06T07:03:30.167 に答える