Wix 3.5 и IIS7 - ошибка WriteIIS7ConfigChanges - при попытке установить три веб-приложения в качестве виртуальных каталогов на веб-сайт по умолчанию - PullRequest
5 голосов
/ 27 июля 2011

Я надеюсь, что кто-то может помочь мне с проблемой, с которой я сталкиваюсь при использовании Wix 3.5.2519.0 на Windows Server 2008 с IIS7 & Совместимость с IIS6 * Установлено 1008 * функций.

Файл журнала MSI

При попытке определить три виртуальных каталога веб-приложений под веб-сайтом по умолчанию, при попытке определить три каталога виртуальных веб-приложений, какзаписано с использованием опции /log <filename> msiexec.exe:

Action 17:05:57: StartIIS7ConfigTransaction. Starting IIS Config Transaction
Action 17:05:57: RollbackIIS7ConfigTransaction. Rolling back IIS Config Transaction
Action 17:05:57: CommitIIS7ConfigTransaction. Committing IIS Config Transaction
Action 17:05:57: ConfigureIIs7Exec. Configuring IIS
ConfigureIIs7Exec:  Error 0x800700b7: Failed get sites section
ConfigureIIs7Exec:  Error 0x800700b7: Failed to search for Website
ConfigureIIs7Exec:  Error 0x800700b7: Failed get sites section
ConfigureIIs7Exec:  Error 0x800700b7: Failed to search for Website
ConfigureIIs7Exec:  Error 0x800700b7: Failed get sites section
ConfigureIIs7Exec:  Error 0x800700b7: Failed to search for Website
Action 17:05:57: WriteIIS7ConfigChanges. Installing Config Keys and Values
WriteIIS7ConfigChanges:  Error 0x800700b7: Failed get sites section
WriteIIS7ConfigChanges:  Error 0x800700b7: Failed to read sites from config
WriteIIS7ConfigChanges:  Error 0x800700b7: Failed to configure IIS application.
WriteIIS7ConfigChanges:  Error 0x800700b7: WriteIIS7ConfigChanges Failed.
Action ended 17:05:57: InstallFinalize. Return value 3.
Action 17:05:57: Rollback. Rolling back action:
Rollback: Installing Config Keys and Values
Rollback: Configuring IIS
Rollback: Committing IIS Config Transaction
Rollback: Rolling back IIS Config Transaction

Объявления компонентов Wix

Существует три веб-сайта, требующих установки, каждый из которых объявлен с синтаксисом компонента xml в wxs файл следующим образом (они не идентичны, но они довольно близки):

<Component Id="DataServiceVirtualDir" Guid="9AC00BDC-D710-429f-B68B-8130DB17C90C">
  <CreateFolder/>
  <iis:WebVirtualDir Id="OurApplicationDataService" 
                     Alias="OurApplicationDataService" 
                     Directory="DATASERVICEDIR" 
                     WebSite="OurApplicationDataService" 
                     DirProperties="OurApplicationDirProperties">
    <iis:WebApplication Id="OurApplicationDataService" Name="OurApplicationDataService">
    </iis:WebApplication>
  </iis:WebVirtualDir>
</Component>

Объявления веб-сайта

Аналогично, они объявлены со следующими элементами website и поддержкойэлементы:

<iis:WebSite Id="OurApplicationDataService" Directory="DATASERVICEDIR" 
             Description="OurApplication Data Service">
  <iis:WebAddress Id="AllUnassignedData" IP="*" Port="80"/>
</iis:WebSite>

<iis:WebSite Id="OurApplicationSecurityService" Directory="SECURITYSERVICEDIR" 
             Description="OurApplication Security Service">
  <iis:WebAddress Id="AllUnassignedSecurity" IP="*" Port="80"/>
</iis:WebSite>

<iis:WebSite Id="OurApplicationProcessingFacades" Directory="PROCESSINGFACADESDIR" 
             Description="OurApplication Processing Facades">
  <iis:WebAddress Id="AllUnassignedFacades" IP="*" Port="80"/>
</iis:WebSite>

<iis:WebDirProperties Id="OurApplicationDirProperties" WindowsAuthentication="no" 
                      AnonymousAccess="yes" AnonymousUser="OurApplicationUserID" />

<iis:WebDirProperties Id="SecurityDirProperties" 
                      WindowsAuthentication="yes" AnonymousAccess="no" />

Сводка и выводы на данный момент

Так что эта загадочная ошибка установщика, 0x800700b7, похоже, все испортила.

Интересно, что более ранняя итерация установщика установилась нормально, а ранее несколько раз удалялась.Однако теперь, при попытке удалить предыдущий установщик и установить новый установщик, удаление завершается неудачно с точно такими же ошибками, буквально сбойная часть файла журнала удаления почти идентична разделу журнала выше.

ЕслиЯ копирую двоичные файлы веб-приложения в нужный каталог установки и подключаю виртуальный каталог вручную через консоль управления IIS7, все работает нормально, и веб-сайты отвечают на запросы соответствующим образом.

Насколько я могу судить,веб-сайт IIS7 и целевые каталоги установки все пустые, пустые и иным образом очищенные перед подготовкой к установке.

Не так много в Google об этом, я думаю, мне просто нужно переустановить IIS7 на коробке, чтобы посмотреть, решит ли это проблему, но это, так сказать, ядерный вариант.

У кого-нибудь есть идеи?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 24 февраля 2012

Это может быть немного поздно, так как вы уже перестроили сервер, но я получаю точно такую ​​же ошибку.

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

<Directory Id='WebAppFiles' Name='WebApp'>
<!-- The component to define the Virtual Directory.-->
<Component Id="WebVirtualDirApp"
    Guid="your-guide-goes-here">
    <!-- The virtual directory we are installing. -->
    <!-- The Alias attribute is the name thata will be put into IIS.-->
    <!-- The Directory attribute is the "Physical Path" property in
         IIS and needs to tie to an ID specified in the setup. -->
    <!-- The WebSite attribute ties to a <WebSite> element in the 
         setup file. As this is an example of installing into the 
         "Default Web Site" that element is not under a component.-->
    <iis:WebAppPool Id="YourWebAppPoolId" Name="YourWebAppPool" 
             ManagedRuntimeVersion="v2.0" />
    <iis:WebVirtualDir Id="VDirApp" Alias="[VDIRNAME]" 
             Directory="WebAppFiles" WebSite="DefaultWebSite">
        <!-- Turn the Virtual Directory into a web application. -->
        <iis:WebApplication Id="TheWebApplication"  
            WebAppPool="YourWebAppPoolId"
            Name="[VDIRNAME]" />
    </iis:WebVirtualDir>
    <!-- This is pretty important. If the CreateFolder isn't there the
         WebVirtualDir won't get created as there's no files in this
         component.
         http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg03483.html -->
    <CreateFolder/>                 
</Component>
</Directory>
2 голосов
/ 29 октября 2013

Я тоже столкнулся с этим. Я видел следующие сообщения в моих журналах установки:

MSI (s) (B8:74) [11:11:24:699]: Invoking remote custom action. DLL: C:\Windows\Installer\MSICF14.tmp, Entrypoint: WriteIIS7ConfigChanges
WriteIIS7ConfigChanges:  Error 0x80070002: Failed get AnonymousAuthentication section for DirProp
WriteIIS7ConfigChanges:  Error 0x80070002: Failed set Authentication for DirProps
WriteIIS7ConfigChanges:  Error 0x80070002: Failed to configure IIS DirProperties.
WriteIIS7ConfigChanges:  Error 0x80070002: WriteIIS7ConfigChanges Failed.

Я открыл диспетчер IIS, и когда я нажал на сайт, на который пытался установить, я получил сообщение об ошибке /, указывающем на недопустимый каталог.

Я щелкнул по сайтам -> перешел на правую панель, щелкнул правой кнопкой мыши по соответствующему сайту, и «Пул приложений» и «Физический путь» были пустыми. Как только я установил их и применил изменения, я смог двигаться вперед очень хорошо. Не знаю, как конфиг моего веб-сайта по умолчанию потерпел неудачу, но исправление в IIS Manager решило проблему.

2 голосов
/ 15 декабря 2012

Я недавно боролся с подобной ошибкой;главное отличие в том, что у нас были пулы приложений, упомянутые в ошибках «WriteIIS7ConfigChanges».Многие поиски в Интернете (как я наткнулся на этот пост) предполагают, что ваша проблема могла быть связана с различными ошибками, которые с тех пор были исправлены Wix.Мы используем Wix 3.7.1119.0, однако самый последний RC на момент написания, поэтому есть как минимум один способ получить эту ошибку.

В конечном итоге я обнаружил, что некоторые несоответствующие проблемы с разрешениямиприводили к сбою установки, а затем на одном из этапов молча происходил сбой отката, который портил конфигурацию сервера.Мы вставляли

<system.transactions><machineSettings maxTimeout="00:30:00"/><defaultSettings timeout="00:30:00"/></system.transactions>

в C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config, но на этапе отката, который должен был удалить его, произошла ошибка с "доступ запрещен ».Любая попытка установки после этой первоначальной неудачной попытки приводила к ошибкам ConfigureIIS7Exec.При входе и ручном удалении настроек тайм-аута транзакции из machine.config ошибка «Не удалось найти веб-сайт» исчезла, и наша установка успешно завершилась еще раз.

...