如何将Web应用程序添加到现有网站?

时间:2013-06-20 14:39:05

标签: wcf iis wix

如何指定已存在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元素直接放入Component中,我会收到以下错误:“Component元素包含一个意外的子元素'iis:WebApplication”

INSTALLDIR的价值是多少?我不知道Default Web SIte的目录在哪里(可能是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();
}

1 个答案:

答案 0 :(得分:3)

请参阅此处的示例代码:Install a New Virtual Directory to Default Web Site with WiX

改述它:如果您将<iis:WebSite>元素放在<Component>元素内,那么该网站由MSI管理并在卸载时删除。如果没有,则网站元素是占位符,卸载不会触及。