2011-10-13 3 views
0

이 문제의 일반적인 원인을 알고 있지만이 URL에 어떤 문제가 있습니까? 요청이 제대로 실행 것으로 보인다 대부분의 시간 잠재적으로 위험한 Request.Path 값 ....에는 영숫자와 밑줄 만 포함됩니까?

http://res02.img.mem.com/individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100

하지만 모든 몇 시간, 서버는 이러한 오류의 소수 (1-3)를 기록하고 각 요청과 함께 503 오류를 반환 시작합니다.

나는 경고에는 신경 쓰지 않지만 서버가 충돌하는 것과 시간순으로 일치합니다. 이 응용 프로그램은 매우 간단합니다. SAN에서 이미지를 반환하고 크기를 조정하면됩니다. 동일한 소프트웨어를 사용하는 다른 서버가 올바르게 작동합니다. (그리고이 소프트웨어는 수천 개의 다른 웹 사이트에 힘을 실어 주며 많은 것은 서버 팜에서 운영됩니다).

차이점은이 서버는 FNCMode = 2이므로 ASP.NET이 수백 개의 FileSystemWatchers를 네트워크에서 생성하여 응용 프로그램 (및 이미지)이 상주하는 SAN을 모니터링하지 못하도록합니다. (BIOS 명령 한계에 도달하지 못하게하려면 오류가 발생합니다.)

나는 심지어 WinDbg 및 SOS를 사용하여 크래시 덤프를 분석하지도 않았습니다.

아이디어가 있으십니까? 나는 여기에 잠재적으로 두 개의 별개의 이슈들을 제시하고 있음을 알고 있지만 연대순으로 연관되어있다.

A potentially dangerous Request.Path value was detected from the client (?). 
    at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() 
    at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context) 

Request information: 
    Request URL: http://res02.img.mem.com/individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100 
    Request Path: /individual/assets/2/2/7/1/2291722/20081027_112706_07.jpg?width=100 
    User host address: 174.37.137.143 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: IIS APPPOOL\ASP.NET v4.0 

Thread information: 
    Thread ID: 32 
    Thread account name: IIS APPPOOL\ASP.NET v4.0 
    Is impersonating: False 
    Stack trace: at System.Web.HttpRequest.ValidateInputIfRequiredByConfig() 
    at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context) 

답변

0

문제가 연결되지 않은 것으로 판명되었습니다. 소수의 요청 URL에 물음표가 URL 인코딩되어 쿼리 문자열 대신 경로의 일부로 파싱되었습니다. URL 디코딩 후 요청이 요청 유효성 검사에 의해 포착되었습니다.

충돌 문제는 IIS 스레딩 버그로 인한 것 같지만 우리는 여전히 MS에서 디버깅 중입니다.

관련 문제