У меня периодически возникали сбои пула приложений на веб-сайте iis 6. Я определил, что запросы, вызывающие это, поступают от Googlebot, запрос выглядит следующим образом (взят из журнала httperr)
HTTP / 1.1 GET /Folder/PageName.html?iframe = true & width = 95% & height = 95%
Запрашиваемая страница изменяется, но строка запроса остается неизменной.
Я попытался добавить код в global.asax.cs, чтобы удалить эти недопустимые строки запроса, но кажется, что строка запроса вызывает Connection_Abandoned_By_AppPool перед тем, как нажать мой код.
Ясно, что мне нужно разобраться с этим раньше, но я действительно не уверен, где ??
Продолжая свое исследование, я обнаружил, что программное обеспечение Parallels Plesk 8.6, которое использует мой веб-сервер, включает фильтр ISAPI под названием urlprotect.dll, который, по сути, просто позволяет защитить паролем определенные URL-адреса на сайте.
Этот фильтр ISAPI применяется (по крайней мере, в этой версии Plesk) ко всем веб-сайтам на сервере по умолчанию, даже если вы не определяете никаких защищенных URL-адресов.
Это причина невозможности обработки неэкранированных знаков процента в URL-адресах.
Я нашел эту информацию в этом сообщении на форуме (http://forum.parallels.com/showthread.php?t=83376), что также указывает на то, что проблема с dll не была успешно разрешена.
Если вам не нужно защищать таким образом какой-либо URL-адрес, то, по моему опыту, его можно безопасно удалить с сайта (-ов) через IIS без каких-либо побочных эффектов.
Символ процента - это специальный символ в URL-адресах. Вам необходимо закодировать это. на "% 25"