3

渡す必要のある長いクエリ文字列値があり(それ自体は疑わしい方法ですが、理解しています)、Appharborアプリインスタンスで有効にすることができません。

ローカルで、web.configにこの変更を加え、問題のURLがローカルで機能することを確認しました。

<httpRuntime maxQueryStringLength="2097151"/>

そして、それが私のWeb.Release.configによる変換後に結果のweb.configに存在することを確認しました。そうは言っても、AppHarborにプッシュすると、トランスフォーメーションがそれを取得するはずです...それでも、この例外が発生します。

The length of the query string for this request exceeds the configured maxQueryStringLength value.

スタックトレース:

at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

何か案は?ご協力いただきありがとうございます。

4

2 に答える 2

6

私の最初のテストは、Cassini (VS 2010 の組み込み Web サーバー) に対して行われました。IIS 7.5 にローカルでプッシュしたところ、次のエラーが見つかりました。

HTTP Error 404.15 - Not Found
The request filtering module is configured to deny a request where the query string is too long.

これ<system.webServer>は、web.config のセクションと<httpRuntime>. したがって、答えはセクション<system.web><system.webServer>セクションの両方を指定することです。

<system.web>
   <httpRuntime maxQueryStringLength="2097151"/>
</system.web>

その後:

<system.webServer>
   <security>
     <requestFiltering>
       <requestLimits maxQueryString="2097151"/>
     </requestFiltering>
   </security>
</system.webServer>

このバージョンの構成を AppHarbor にプッシュしたところ、すべて問題ありませんでした。お役に立てれば。

于 2012-01-20T15:26:47.683 に答える