3

ASP.NET 4/IIS 8 を使用して ( を介してwebHttpBinding) WCF サービスを使用していますが、JSON を使用してGET. しかし、今日は大きなクエリ文字列 (約 3000 文字、それほど長くはありませんが、私が使用していたものよりも長い) を送信するメソッドを実装する必要がありました。サービスを呼び出したところ、デバッグ マシンでコードにステップ インすることさえせずに、すぐに 404 エラーが発生しました。最初に頭に浮かんだのは、クエリ文字列の最大長の制限です。これをweb.configに追加しました:

 <system.webServer>
    <directoryBrowse enabled="true" />
    <security>
      <requestFiltering>
        <requestLimits maxQueryString="8000"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

現在、サービスを呼び出すと、このサーバー エラーが発生します。奇妙なことに、約 3000 文字のクエリ文字列と URL を介して、The length of the query string for this request exceeds the configured maxQueryStringLength value.などの他の値を試しました。200000何か不足していますか?

4

1 に答える 1

4

おそらくhttpRuntime 要素で設定さmaxQueryStringLengthれます。

2 つの構成設定があるのは少し混乱しますが、次のように解釈できると思います。

  • maxQueryStringLength プロパティは ASP.NET 4のhttpRuntime新機能で、ASP.NET HTTP ランタイムで処理できるクエリ文字列の最大長を構成します。ASP.NET 4 より前は、これは 2048 の固定値でした。増やすことができるようになりました。

  • maxQueryStringLengthsystem.web/security/requestFilteringプロパティは IIS 7 の設定であり、管理者はクエリ文字列の最大長を制限できます。この設定は、ASP.NET に固有のものではありません。

于 2012-09-08T09:46:32.907 に答える