3

如何指定已经存在 IIS 默认网站?不得卸载默认网站。我只想用我的 WiX 安装程序添加一个新的 Web 应用程序。

不幸的是,我没有找到任何合适的样品。每个人似乎总是安装和卸载整个东西。

编辑:

<Fragment>
    <ComponentGroup Id="IIS">
        <Component Id="EEE" Directory="WCFFOLDER">
            <iis:WebVirtualDir Id="MyVirtualDir" Alias="MyVirtualDir" Directory="INSTALLDIR" WebSite="DEFAULTWEBSITE">
                <iis:WebApplication Id="DeploymentWebAppl" Name="MyName" WebAppPool="MyAppPool" />
            </iis:WebVirtualDir>
        </Component>
    </ComponentGroup>

    <iis:WebSite Id="DEFAULTWEBSITE" Description="Default Web Site" Directory="INSTALLDIR">
        <iis:WebAddress Id="AllUnassigned" Port="80" />
    </iis:WebSite>
    <iis:WebAppPool Id="MyAppPool" Name="MyAppPool"/>
</Fragment>

如何指定还有一个虚拟目录?如果我将 iis:WebApplication 元素直接放入组件中,则会收到以下错误:“组件元素包含意外的子元素 'iis:WebApplication”

INSTALLDIR 的价值是什么?我不知道默认网站的目录在哪里(可能是 C:\intpub\wwwroot)

我想在我的 WiX 安装程序中执行与以下 C# 代码相同的操作

using (ServerManager manager = new ServerManager())
{
   var site = manager.Sites["Default Web Site"];
   var application = site.Applications.CreateElement();
   application.Path = "C:\ProgramFiles\.....";
   application.EnabledProtocols = "http,net.tcp";
   application.ApplicationPoolName = "MyAppPool";
   site.Applications.Add(application);

   manager.CommitChanges();
}
4

1 回答 1

4

请参阅此处的示例代码:使用 WiX 将新的虚拟目录安装到默认网站

换个说法:如果您将<iis:WebSite>元素放在<Component>元素中,则该网站由 MSI 管理并在卸载时删除。如果不是,则网站元素是占位符,卸载时不会触及。

于 2013-06-20T18:06:37.803 回答