当ConfigureIfExists设置为yes时,WiX WebSite会创建第二个重复绑定

时间:2011-07-26 14:28:27

标签: visual-studio-2010 iis-7 wix windows-installer wix3.5

我正在修改我正在修改IIS中的网站的安装程序。要求声明最终用户必须首先在IIS中创建站点。我们从他们网站的安装程序下拉列表中读取他们选择的网站信息,并将信息存储在WiX的属性中。

我在组件下有一个WebSite元素,并将ConfigureIfExists设置为yes。很多这似乎工作得很好,它将网站的目录重置为网站在驱动器上的位置。

问题是当我在IIS中检查设置时,即使我有AutoStart = yes和StartOnInstall = yes,网站也没有启动。我看到的问题是,由于它是一个现有的网站,它会为网站,相同的端口和所有内容创建一个重复的绑定,这会导致网站无法运行。

有谁知道为什么会这样,或者如何解决?我需要它不复制绑定,以便在安装完成后重新启动网站。

2 个答案:

答案 0 :(得分:0)

我建议您使用WiX v3.6尝试此方案(采用最新的可用版本)。 IIS7扩展中有很多修复,很可能你的问题就会消失。

编辑:现在WiX 3.6正处于官方测试阶段。它非常稳定,并且包含许多对IIS扩展的修复。

答案 1 :(得分:0)

我有类似的问题。我能够使用以下方法解决它,但请注意,它有点像黑客。

对于我现有的网站,我在SiteId上匹配它,并使用WebDirProperties属性设置我想要更改的任何配置属性。然后,在iis:WebAddress元素中,我将端口号设置为一些未使用的端口(我使用8081)。这将在IIS7中添加额外的http绑定(正如您在问题中看到的那样)。然后,我创建一个我在InstallFinalize之前运行的自定义操作。自定义操作基本上循环遍历站点Bindings,查找与我在wix中输入的伪造端口匹配的那个并删除它。然后自定义操作启动网站,一切都很好。

这是我能找到让它在Wix 3.5中运行的唯一方法。这不是最好的方法,但它对我有用。