Wix 3.5 и IIS7 - Ошибка записи IIS7ConfigChanges - при попытке установить три веб-приложения в качестве виртуальных каталогов на веб-сайт по умолчанию

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

Файл журнала 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 на коробке, чтобы посмотреть, решит ли это проблема, но это, так сказать, ядерный вариант.

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

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


person Rabid    schedule 27.07.2011    source источник
comment
Вы пытались установить его, используя учетную запись администратора?   -  person Sunil Agarwal    schedule 01.08.2011
comment
Да, мы это сделали, на самом деле мы пробовали несколько учетных записей с разными привилегиями. Ничего не изменилось.   -  person Rabid    schedule 08.08.2011
comment
У меня была аналогичная проблема с WiX 3.5 и IIsExtension. Попробуйте WiX 3.6 - скорее всего, там все исправлено.   -  person Yan Sklyarenko    schedule 12.08.2011
comment
Спасибо, Ян. К сожалению, окончательным решением для нас было перестроить весь сервер. Это решило проблему - сервер был немного взвинчен от начала до конца (также требовалось исправление genreatePublisherEvidence для проверки сертификата). После перестройки все эти проблемы, к счастью, исчезли.   -  person Rabid    schedule 12.08.2011


Ответы (3)


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

Конечной причиной ошибки было то, что пул приложений использовал неправильную версию .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/[email protected]/msg03483.html -->
    <CreateFolder/>                 
</Component>
</Directory>
person Great Turtle    schedule 24.02.2012
comment
Спасибо за ответ, вы правы, я не могу определить, было ли это причиной проблемы. У меня не было определения пула приложений в проекте WiX, но его определение вполне могло быть решением. - person Rabid; 27.02.2012
comment
На самом деле моя конфигурация была настроена точно так же, и я все еще сталкивался с проблемой (см. Мой ответ, если вам интересно, какое у меня было разрешение). В любом случае, +1, так как это все еще очень полезно ... - person Lynn Crumbling; 29.10.2013

Я недавно боролся с подобной ошибкой; Основное отличие состоит в том, что у нас были пулы приложений, упомянутые в ошибке «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 ошибка «Не удалось найти веб-сайт» исчезла, и наша установка снова успешно завершилась.

person sugaredlightning    schedule 14.12.2012

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

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 решило проблему.

person Lynn Crumbling    schedule 29.10.2013