Я внедрил переписывание URL-адресов в файле global.asax, он отлично работает на моей машине, но не в живой среде. Любая идея, на что я могу обратиться, чтобы решить проблему? global.asax переписывание не работает live
ответ
Веб-сервер, встроенный в Visual Studio, использует механизм ASP.NET для обработки всех типов файлов, но IIS использует только механизм ASP.NET для обработки фактически исполняемых типов файлов.
Таким образом, Application_BeginRequest
событие (и подобное) в файле global.asax происходит только для типов файлов, как .aspx
или .asmx
, не типы файлов, как .html
, .css
или .jpg
.
Сначала убедитесь, что у вас установлено IIS все соответствующие URI для механизма ASP.NET. Если все пути заканчиваются ограниченным числом так называемых «расширений» (например, .html, .png, чтобы URI выглядел как путь к файлу с расширением файла), вам нужно просто наметить это конкретное расширение (copy- вставить из этого для .aspx).
Если вам нужно, чтобы он обрабатывал (или, по крайней мере, проверял, должен ли он обрабатывать) более широкий диапазон URI, вам нужно установить обработчик подстановки. Различные версии IIS отличаются тем, как это делается (IIRC 5.0 до 6.0 было, когда произошло изменение). Если в версии есть место для размещения подстановочных сопоставлений со стороны диалогового окна, в котором рассматриваются сопоставления сценариев (или «сопоставления обработчиков» от 7.0), используйте это, если нет, определите отображение для. * (Не беспокойтесь о периоде, он все равно будет соответствовать URI, даже если у них их нет).
Есть и другие вещи, которые могут пойти не так, но это ваша отправная точка, и если это не так, это, безусловно, вызовет эту проблему.