私はWebアプリケーションのためのWiXアップグレードを仕事中に書こうとしています。インストーラはIISでサイトとアプリケーションプールを作成し、正常に動作します。アップグレードでは、RTMのアンインストール中にサイトとアプリケーションプールの両方が削除されますが(正しい)、アプリケーションプールの作成が失敗するため、アップグレードのインストール中にサイトを再作成するだけです。ログの内容は次のとおりです。WiXメジャーアップグレードでIISにAppPoolを追加する方法?
MSI(08:AC)[20:45:23:527]:リモートカスタムアクションを呼び出す。 DLL:C:¥Windows¥Installer¥MSI52F5.tmp、Entrypoint:WriteIIS7ConfigChanges WriteIIS7ConfigChanges:エラー0x80070002:httpErrorsセクションに失敗しました。 WriteIIS7ConfigChanges:エラー0x80070002:IIS Aspプロパティを構成できませんでした。 WriteIIS7ConfigChanges:エラー0x80070002:WriteIIS7ConfigChangesが失敗しました。
狂ったことは...私はIISを開いて、アプリケーションプールを見ていると動作します。私はそれがこのIIS Aspプロパティを取得することに問題があると仮定していますが、私はそれを提供する方法を知らない。私はそれは、このコマンドを実行して、設定されていない場合は、IISを設定するカスタムアクションを持っている:
dism.exe /オンライン/有効-特集/ FEATURENAME:IIS-ASPNET45/FEATURENAME:IIS-HttpCompressionDynamic /すべて/ NORESTART
そして、ここでは、私はIISで実行しようとしていますものです:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension"
xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension">
<Fragment>
<Property Id="APP_POOL_NAME" Value="BlahAppPool" Secure="yes"></Property>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="BlahAppPool" Guid="{46BEB5E3-BD0C-4161-B8A4-10A1E106E0C7}" KeyPath="yes">
<iis:WebAppPool Id="BlahAppPool"
Name="[APP_POOL_NAME]"
Identity="applicationPoolIdentity"
ManagedPipelineMode="Integrated"
ManagedRuntimeVersion="v4.0" />
</Component>
<Component Id="InstallWebsite" Guid="{3423D559-A1C8-4764-BE0C-524AFB47508C}" KeyPath="yes">
<iis:WebVirtualDir Id="BlahWebsite"
Directory="INSTALLFOLDER"
Alias="[WEBAPPNAME]"
WebSite="DefaultWebSite">
<!-- Turn the virtual directory into a web application -->
<iis:WebApplication Id="BlahWebApplication" Name="Blah Web App" WebAppPool="BlahAppPool" />
</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>
</DirectoryRef>
<!-- Reference the default web site. Outside a component means the website element is a locator/search. Inside
a component means it’s a creator.-->
<iis:WebSite Id="DefaultWebSite"
Description="Default Web Site"
Directory="INSTALLFOLDER">
<iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>
<ComponentGroup Id="BlahSiteIisConfiguration">
<ComponentRef Id="BlahAppPool" />
<ComponentRef Id="InstallWebsite" />
</ComponentGroup>
</Fragment>
</Wix>
私は前のWiXを使用しないと会社を辞め誰かからこれを継承しないしました。私はこれを除いてアップグレードのために必要なこと全てを理解しました。どんな助けでも大歓迎です。前もって感謝します!また、より多くの情報を投稿する必要がある場合は、喜んで提供します。
インストーラで以前のWebアプリケーションとアプリケーションプールを削除すると、それを元に戻すことはできませんが、アップグレードを実行する前に手動でIISから削除すると、新しいものが正しく再作成されます。私は本当に私たちのインストーラを実行する前にユーザーが手動で行う必要がないようにしたいと思います。 – booleanCube