Проекту веб-настройки VS2010 требуется совместимость с IIS6 (метабаза) на IIS7. Последствия или другие вопросы для приложения?
При попытке установить проект веб-настройки (MSI), созданный в Visual Studio 2010 в Windows Vista, Windows 7 или Windows 2008 Server, установка завершится неудачно с некоторой общей ошибкой. Согласно http://devio.wordpress.com/2011/04/26/pitfalls-installing-web-setup-msi-on-iis-7/ это связано с проблемой совместимости между проектом установки en IIS7.
Чтобы решить эту проблему, я должен включить / установить совместимость метабазы IIS6 в конфигурации Windows. Этот обходной путь действительно решил проблему, но поднимает 2 вопроса:
- Влияет ли это (негативно) на функциональность IIS 7?
- Как я могу уведомить пользователя, выполняющего установку, об этой проблеме, чтобы он или она могли предпринять надлежащие действия и установить компонент совместимости с метабазой? Можно ли из этой установки открыть диалоговое окно конфигурации компонентов Windows, чтобы облегчить жизнь пользователю?
2 ответа
- Я не думаю, что это окажет какое-либо влияние на само приложение, если оно реализует способ общения с IIS7 через его собственный API. В противном случае, если он не поддерживает IIS7, вам все равно придется включить совместимость с IIS6.
- Стандартный подход к поиску чего-либо на целевой машине - это поиск в реестре и файловой системе. Я не знаю, как это возможно в проекте установки VS, но, например, WiX имеет специальные элементы для этого ( RegistrySearch, DirectorySearch, FileSearch). По сути, этот пост в ветке "Советы и хитрости WiX" показывает, как проверить совместимость IIS6 в WiX и заблокировать установку, если она не включена / не установлена. Это довольно просто, даже если вы не знаете WiX, но знакомы с понятиями установщика Windows и могут помочь вам перевести код в нечто подобное в проекте установки VS.
Мы, похоже, оказываем одно негативное влияние на наши серверы. Каждый раз, когда мы запускаем приложение.NET 4.0 с MSI, созданным в Visual Studio, мы получаем перезапуск ВСЕХ наших пулов приложений, даже тех, которые не были затронуты установкой. Очевидно, что основной причиной этого является совместимость с IIS 6. (Об этом нам сообщил разработчик Microsoft в ответ на вопрос нашей службы поддержки по этому поводу.
На данный момент у нас нет решения. Невозможно конвертировать все наши установщики в Wix.