Я уже пару лет без проблем использую модуль UrlRewriting.Net в Windows XP и Windows 2003. Недавно я обновил свой домашний ПК до Windows 7 и начал разработку нового веб-сайта.
План состоял в том, чтобы использовать расширения .html и переписать их для своих аналогов .aspx с помощью модуля UrlRewriting.Net. Все работает безупречно в VWD 2008 , но когда я пытаюсь запустить его через IIS7, это другая история.
Когда я пытаюсь получить доступ к странице через .html, я больше не могу получить доступ к Page.User; он продолжает возвращать ноль. Если я попаду на страницу с расширением .aspx, Page.User будет заполнен правильно. Я должен также упомянуть, что у меня есть контроллер LoginView на моей мастер-странице, и он страдает от тех же симптомов: при доступе через расширение .html он показывает AnonyousTemplate; При использовании расширения .aspx он правильно показывает LoggedInTemplate. Я предполагаю, что оба связаны.
[Примечание: я также пробовал URL-адреса без расширений, и они показывают ту же проблему]
Единственный способ заставить его работать - это переключить пул приложений на классический, что затем требует от меня добавления обработчика ddl ASP.Net для расширения .html [в противном случае он обрабатывается StaticFileHandler и появляется как ошибка 404]. Однако я хотел бы, чтобы мое веб-приложение работало правильно для людей, не прибегая к помощи IIS.
Итак, у меня осталось несколько вопросов:
- У кого-нибудь есть идеи относительно того, почему Page.User всегда равняется нулю для переписанных страниц .html => .aspx?
- Почему он работает в VWD 2008, но не в IIS7?
- Что изменилось с IIS6 => IIS7, что могло вызвать это?
- Есть еще какие-нибудь мысли по поводу обходных путей?
[Примечание: я только что попробовал перезаписать .aspx => .aspx, но проблема не возникла. Не совсем то, что я хочу, но подумал, что должен это упомянуть.]