2012-01-19 6 views
3

私は渡す必要がある長いクエリーストリング値を持っています(それ自体は疑わしい習慣です)、私はAppharborアプリケーションインスタンスに影響を与えることができません。AppHarbor - 私の<httpRuntime maxRequestQueryStringLength = "XXXX" />が機能しないのはなぜですか?

ローカルで、私は私のweb.configファイルにこの変更を行い、問題のURLがローカルに動作することを確認しました:

<httpRuntime maxQueryStringLength="2097151"/> 

そして、それは結果のweb.configファイルのポストで私による変換が存在することを保証しましたWeb.Release.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) 

任意のアイデア?ご協力いただきありがとうございます。

+0

設定をマスターweb.configファイルに配置した場合、なぜweb.release.configも使用していますか?いずれにせよ、コンボが望ましい出力を出すことを確認したいかもしれません:webconfigtransformationtester.apphb.com – friism

+0

申し訳ありませんが、悪いことに言えば - 「Web.Release.configに存在することを保証します」結果として変換されたweb.configは私が期待したセグメントを保持しました。元の質問を編集しました。 – TimDog

答えて

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. 

私も<httpRuntime>としての私のweb.configの<system.webServer>セクションにmaxQueryLengthを指定しなかったので、登場しました。私はすべてが順調だった、AppHarborに私の設定のこのバージョンをプッシュすると

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

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

そして:だから答えは<system.web><system.webServer>セクションの両方を指定することです。お役に立てれば。

関連する問題