2012-01-19 7 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에 내장 된 웹 서버)에 대해 수행되었습니다. 나는 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를 지정하지 않았기 때문에 나타났다. 그래서 대답은 모두 <system.web><system.webServer> 섹션을 지정하는 것입니다 : 다음

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

그리고 : 나는 AppHarbor 내 설정의이 버전을 밀어

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

은 모두 잘했다. 희망이 도움이됩니다.