2012-01-25 2 views
1

ASP.NET MVC3 사이트를 게시했습니다. 그것은 위대한 실행합니다. 그러나, 내 web.config 파일을 다시 보면, 필자가 사용한 값 중 일부가 게시와 개발 중 올바른지 확실하지 않았습니다. 이러한 구성은 <system.web> 섹션에 있습니다.ASP.NET MVC3 web.config에 설정 게시

... 
    <system.web> 
    <httpRuntime requestValidationMode="2.0" executionTimeout="200" maxRequestLength="20000000"/> 
    <compilation debug="true" targetFramework="4.0"> 
... 

은 여기 읽기 (http://msdn.microsoft.com/en-us/library/e1f13641.aspx)이 (200)의 executionTimeout 설정을 무시하고,이 사건 것 같다, 그리고 사이트가 매우 허용하는 설정입니다 (110)의 기본값을 사용합니다 컴파일에 진정한 디버그를 = 사용 많은 양의 파일을 한번에 업로드 할 수 있습니다. 그러나 단 110 초 만에별로 업로드 할 수 없습니다.

제 질문은 이것입니다 : 디버깅을위한 라이브 사이트를 게시하는 올바른 설정이 "false"입니까? 또한 requestValidationMode = "2.0"asp.net이 이제 버전 4.5 (곧 4.5가 될 예정)로 간주되어 여전히 안전합니까?

+2

디버그가 true이면 실행 시간 초과가 없습니다. 게시 할 때 디버그를 항상 false로 설정하고 기본값보다 긴 경우 executionTimeout을 명시 적으로 설정해야합니다. – dotjoe

+0

예, 실제로 업로드가 진행 중임을 알게되었지만 다른 곳에서 병목 현상이 발생했습니다. 한 번에 9MB의 사진을 업로드하려고하는데 업로드 한 후에는 사진을 가져 가지 않습니다. 제가 개별적으로 그렇게한다면 그것은 효과가 있습니다. –

+0

IIS 7 이상을 사용하십니까? 그렇다면 maxAllowedContentLength 필터링 요청이 낮음으로 구성되어 있지 않은지 확인하십시오. 나는 그것의 기본값이 꽤 큰 것 같아. – dotjoe

답변

3

Validationmode 2.0은 프레임 워크 버전이 아니 어서 그대로 유지할 수 있습니다.

디버그 = false로 설정하면 문제가 없습니다.

2

requestValidationMode ... 지금까지 내가 알고 있어요,이 는 요청 데이터에 특수 문자 (<는,>, % 등) ASP.NET의 요청을 전달할 수 있도록하려면이 2.0으로 설정해야합니다 전혀 유효성 검사. requestValidationMode = "2.0"은 요청 (4.0에서 소개 됨)이 아닌 페이지 (예 : .aspx)에 대해서만 유효성 검사를 실시한다는 것을 의미하며,이를 통해 ASP.NET MVC가 유효성 검사를 대신 수행 할 수 있습니다. 특정 요청에 대해 해제하십시오

[ValidateInput(false)]이 적용된 작업이나 컨트롤러 또는 [AllowHtml]이있는 모델이 공격으로부터 적절히 보호되었는지 확인한 경우입니다 .Imran Baloch에 대한 자세한 설명이 있습니다. here

예, 성능 및 메모리 사용을 비롯한 여러 가지 이유로 디버그가 "false"여야하며, 정적 파일의 기본 캐시 정책이 never가 아닌 debug = "true"로 변경됩니다. CSS 등의 중복 요청을 의미하는 브라우저의 파일을 보시기 바랍니다.

제안 된 제안 사항 이외의 다른 이미지 업로드의 경우, 이유로 인해 응용 프로그램 풀이 하나의 이유로 리사이클되지 않았 음을 확인하거나 실행 제한 시간이 아닌 다른 시간.

관련 문제