Как я устанавливаю ASP.NET приложение MVC на использовании IIS 7 Wix?

hash1.merge(hash2){|_, v1, v2| [v1, v2]}.values
# => [["]", "["], ["}", "{"], [")", "("], ["(", ")"], ["{", "}"], ["[", "]"]]
15
задан hlovdal 21 April 2009 в 21:30
поделиться

3 ответа

Расширения IIS для WIX не поддерживают IIS7. Команды IIS продолжают переписывать метабазу между версиями. Существует довольно много вещей, которые не работают, отсутствие пула интегрированного приложения среди них.

Пока расширения не переписываются, Вас оставляют с тремя опциями:

  • Используйте сборку в пользовательских действиях для вызова appcmd.exe
  • Используйте XmlConfig для обновления applicationHost.config
  • Запишите свои собственные действия

Я выбрал xmlconfig опцию в данный момент, поскольку можно сделать это в компоненте и связать его с функцией.

2
ответ дан 1 December 2019 в 04:10
поделиться

Благодаря @matthewthurlow я смог использовать XML utils для достижения того, что я должен был сделать:

<util:XmlFile 
    Id="ModifyAppPoolPipelineType"
    Action="setValue"
    ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='My Application Pool'[\]]/@managedPipelineMode"
    File="[WindowsFolder]System32\inetsrv\config\applicationHost.config"
    Value="Integrated"/>

Остальная часть действий, действительно кажется, хорошо работает с IIS 7.

4
ответ дан 1 December 2019 в 04:10
поделиться

Я лично рекомендую использовать AppCmd.exe (первая статья Matthewthurlow), потому что вам не нужно рассчитывать на устанавливаемые устаревшие компоненты управления или рискнуть изменить конфигурационный XML вручную.

Если вам не нравится AppCmd, у Майка Володарского есть отличная статья на тему: Начало работы с AppCmd. exe и справочник по конфигурации IIS Microsoft превосходны, предлагая примеры пользовательского интерфейса, кода и AppCmd ​​для изменения каждого из элементов конфигурации (например, пулов приложений ). Пакет администрирования IIS7 также включает в себя Редактор конфигурации, который позволяет создавать сценарии AppCmd ​​ из любой существующей конфигурации.

Чтобы интегрировать AppCmd ​​в WiX, необходимо создать и запланировать два пользовательских действия для каждой команды. В руководстве по WiX v3 содержится общая информация, описывающая эту процедуру , и ниже приведен конкретный пример.

Во-первых, вам нужно настроить немедленное действие для сохранения командной строки в свойстве :

<CustomAction 
  Id="CreateAppPool_Cmd" 
  Property="CreateAppPool" 
  Execute="immediate" 
  Value="&quot;[WindowsFolder]system32\inetsrv\APPCMD.EXE&quot; add apppool /name:&quot;[APP_POOL_NAME]&quot;" /> 

Далее вы устанавливаете отложенное действие, которое ссылается на это свойство:

<CustomAction 
  Id="CreateAppPool" 
  BinaryKey="WixCA" 
  DllEntry="CAQuietExec" 
  Execute="deferred" 
  Return="ignore" 
  Impersonate="no"/> 

И, наконец, вам нужно запланировать это. Непосредственное действие, которое устанавливает свойства, похоже, хорошо работает после InstallFinalize, а отложенное действие работает после InstallFiles. Я еще не дошел до выяснения действий по откату.

MapGuide Open Source широко использует этот метод; Вы можете увидеть расписание CA в нашем файле MapGuide.wxs , а определение CA в нашем файле IIS7.wxs .

11
ответ дан 1 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: