Я думал, что у меня под контролем маршрутизация URL, так как он хорошо работает на одном веб-сайте, но обнаружил, что он не работает нормально на другом.Оба веб-сайта работают с одного и того же сервера, того же IIS 6.0, одного и того же asp_isapi.dll.
SETUP 1: Этот работает хорошо:
routes.MapPageRoute("Article SEO",
"sid/{sid}",
"~/ar.aspx",
true,
new RouteValueDictionary { },
new RouteValueDictionary { { "sid", @"^([a-zA-Z\-]*)+([a-zA-Z])+(.html)$" } }
);
SETUP 2: Но этот, очень похожий, работает не очень хорошо:
routes.MapPageRoute("Article",
"page/{sid}",
"~/page.aspx",
true,
new RouteValueDictionary { },
new RouteValueDictionary { { "sid", @"^([a-zA-Z0-9\-]*)+([a-zA-Z0-9])+(.html)$" } }
);
Тестирование Regex в Regex Coach показывает, что они написаны правильно, я имею в виду, что они оба ловят хорошие или неправильные строки.
URL-адрес, который я использую для второго: http://address/page/some-html-keywords.html. Если я укажу такой URL-адрес, он будет работать хорошо.
Проблема в том, что если я изменю расширение .html на что-то вроде .htmls или .anything , это полностью убьет веб-сервер.У меня есть 100% процесс использования.Я не понимаю, почему и как, у меня нет этой проблемы с первой настройкой.Я могу изменить его на все, что захочу, и он либо показывает страницу, потому что у меня правильный формат, либо показывает, что страница 404 не найдена.
Некоторые примеры:
http://address/page - страница 404, работает правильно
http://address/page/test.html - принято, работает правильно
http://address/page/testing_#.html - страница 404, работает правильно
http://address/page/test.htmls - не показывает страницу, зависает, 100% использование процесса, не работает правильно
http://address/page/test.whatever - не показывать страницу, зависание, 100% использование процесса, не работает правильно
http://address/page/page.aspx - перенаправления, работают правильно
Та же самая настройка (с другой проверкой Regex) хорошо работает на другом сайте в том же IIS 6.0.Оба используют один и тот же файл asp_isapi.dll.
Я просто не понимаю.Я попытался прокомментировать весь код в page.aspx, чтобы узнать, была ли проблема с кодом в page.aspx, но это не имеет значения.Он просто висит с пустой страницей.Поэтому должна быть проблема с маршрутизацией URL или isapi.dll или IIS.Но другой веб-сайт на том же IIS и той же машине просто работает.
Есть мнения?
Спасибо
Fero