Потенциально опасное значение Request.Path .... содержит только буквенно-цифровые символы и подчеркивание? - PullRequest
0 голосов
/ 14 октября 2011

Мне известны обычные причины этой проблемы, но что не так с этим URL?

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 Limit достигли ошибок).

Я даже проанализировал аварийный дамп с 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)

1 Ответ

0 голосов
/ 31 октября 2011

Оказывается, проблемы не были связаны.Несколько URL-адресов запросов содержали URL-кодированный знак вопроса, в результате чего он анализировался как часть пути, а не строки запроса.После декодирования URL запрос был перехвачен при проверке запроса.

Похоже, что проблемы сбоя связаны с ошибкой потоков IIS, но мы все еще отлаживаем ее с помощью MS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...