Лучший отвечающий
Перенос приложения из IIS 5.1 в IIS 7.5

Вопрос
-
Здравствуйте!
У меня нормально работал сайт под Windows XP Pro (IIS 5.1). При переносе на Windows 7 Ultimate (IIS 7.5) система дает ошибку
The WebResource.axd handler must be registered in the configuration to process this request. <!-- Web.Config Configuration File --> <configuration> <system.web> <httpHandlers> <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" /> </httpHandlers> </system.web> </configuration>"
Я делаю, как рекомендовано - никаких изменений. Я вставляю эту команду в другую секцию
<system.webServer>
<handlers>
<add name="WebResource" path="WebResource.axd" verb="GET,HEAD,POST,DEBUG" preCondition="integratedMode" type="System.Web.Handlers.AssemblyResourceLoader" />
</handlers>
<defaultDocument>
<files>
<clear />
<add value="default.aspx" />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
</files>
</defaultDocument>
</system.webServer>
(система, правда, ругается, что нет обязательного тэга name, пришлось его вставить).Сайт стал открываться, но как-то странно:
1. Не находит пути к файлам (в том числе и стилей, поэтому все страницы без стилей и выглядят ужасно!, не находит файлов ресурсов, и поэтому те LinkButton, где есть картинки, вообще не показываются)
2.Не запускаются файлы .htm, говорит
HTTP Error 404.4 - Not Found
The resource you are looking for does not have a handler associated with it.
(Я так понимаю, что не находится обработчик файлов .htm)
И еще много не так, как на старом сайте под управлением IIS 5.1
При этом, если я использую встроенный VS Development Server - то все нормально.
Вопрос - что надо написать в Web.config, чтобы миграция с IIS 5.1 на IIS 7.5 прошла нормально?
Спасибо
Александр
- Изменено YatajgaModerator 26 января 2014 г. 9:26 Правка заглавия
26 января 2014 г. 8:34
Ответы
-
Первое, что я сделал - это запустил команду aspnet_regiis -i, но это не помогло. Видимо, какой-то косяк при установке IIS 7.5 на Windows 7, потому что при установке приложения на Windows Server 2008 (и на 32, и на 64-разрядные версии, там где IIS 7.0 встроен изначально) - все работает нормально, даже не перестраивая Web.config !
- Предложено в качестве ответа YatajgaModerator 31 января 2014 г. 19:48
- Помечено в качестве ответа YatajgaModerator 6 февраля 2014 г. 6:08
28 января 2014 г. 18:42 -
Ну тогда, скорее всего проблема с установкой IIS и регистрацией обработчиков.
Сделаем содержимое сообщества лучше, вместе!
- Предложено в качестве ответа YatajgaModerator 31 января 2014 г. 19:49
- Помечено в качестве ответа YatajgaModerator 6 февраля 2014 г. 6:08
28 января 2014 г. 19:21Модератор
Все ответы
-
Дело в том, что конвейер обработки запросов в IIS 5.1 и IIS 7.x совершенно разный, отсюда и все проблемы. Секцию <httpHandlers> надо убрать совсем. Чётких инстукций на этот счёт нет. Самое главное надо убрать все те настройки из файла web.config которые относятся к старой версии IIS.
"Не находит пути к файлам (в том числе и стилей, поэтому все страницы без стилей и выглядят ужасно!, не находит файлов ресурсов, и поэтому те LinkButton, где есть картинки, вообще не показываются)" - возможно по умолчанию подключается система маршрутизации, оттуда и все беды. Тем более, что вы её не использовали раньше. Отключите модуль маршрутизации, если он подключён.
<system.webServer> <modules> <remove name="UrlRoutingModule-4.0" /> </modules> </system.webServer>
Тогда запросы не будут перехватываться системой маршрутизации, а статические файлы будут передаваться нормально.
Сделаем содержимое сообщества лучше, вместе!
26 января 2014 г. 9:25Модератор -
Спасибо за совет. Но он не сработал. Сработало (частично), когда я добавил в секцию <system.webServer> явно handler
<handlers> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule" resourceType="Either" requireAccess="Read" /> </handlers>
Стили и ресурсы, а также файлы .htm стали находиться. Но отчеты (.rdlc) не грузятся в объект ReportViewer (в IIS 5.1 и во встроенном сервере работало, так что пути правильные), хотя в той же секции есть обработчик
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Такое ощущение, что не работает обработчик отчетов (он не загружается по умолчанию) - что я должен еще делать?
> Самое главное надо убрать все те настройки из файла web.config которые относятся к старой версии IIS
А какие настройки я должен убрать?
27 января 2014 г. 15:05 -
"Такое ощущение, что не работает обработчик отчетов (он не загружается по умолчанию) - что я должен еще делать?" - да, скорее всего именно так. Попробуйте переустановить ASP.NET. Для этого выполните команду:
aspnet_regiis -i
именно для той версии, которую используете. Подробности смотрите в MSDN, ссылка которую привёл выше.
"А какие настройки я должен убрать?" - если приложение запускается, то значит их уже нет.
Сделаем содержимое сообщества лучше, вместе!
27 января 2014 г. 18:45Модератор -
Первое, что я сделал - это запустил команду aspnet_regiis -i, но это не помогло. Видимо, какой-то косяк при установке IIS 7.5 на Windows 7, потому что при установке приложения на Windows Server 2008 (и на 32, и на 64-разрядные версии, там где IIS 7.0 встроен изначально) - все работает нормально, даже не перестраивая Web.config !
- Предложено в качестве ответа YatajgaModerator 31 января 2014 г. 19:48
- Помечено в качестве ответа YatajgaModerator 6 февраля 2014 г. 6:08
28 января 2014 г. 18:42 -
Возможно там пул приложений по умолчанию запускается в классическом режиме, в этом случае настройки менять не надо. Тоже самое можете сделать и в IIS 7.5, поменять режим пула. Возможно и косяк с установкой IIS тоже, как вы уже сказали.
Сделаем содержимое сообщества лучше, вместе!
28 января 2014 г. 18:47Модератор -
Я был уверен, но на всякий случай проверил - пул запускается в Integrated режиме28 января 2014 г. 19:17
-
Ну тогда, скорее всего проблема с установкой IIS и регистрацией обработчиков.
Сделаем содержимое сообщества лучше, вместе!
- Предложено в качестве ответа YatajgaModerator 31 января 2014 г. 19:49
- Помечено в качестве ответа YatajgaModerator 6 февраля 2014 г. 6:08
28 января 2014 г. 19:21Модератор