WIX Installer从根文件夹中删除Siteminder虚拟目录

时间:2014-03-26 22:48:34

标签: asp.net asp.net-mvc-3 iis wix siteminder

我的Web应用程序在MVC3中,我使用WIX 3.5将其部署在DEV,QA和PROD框中。该应用程序使用Siteminder身份验证。 WIX安装程序安装应用程序正常,网站工作。但是,在卸载应用程序时,WIX正在从根文件夹中删除Siteminder虚拟目录。这就是IIS的样子,

enter image description here

enter image description here

这是在web服务器上设置siteminder的方式(如下所示),

enter image description here

上图中的web.config包含所有与Siteminder相关的配置设置。我的应用程序web.config没有与siteminder相关的条目。换句话说,Siteminder对我的应用程序是透明的。 当WIX安装应用程序时,它会安装我在上图中涂黑的文件夹下的所有内容。在取消安装时,它会删除应用程序文件夹(上图中涂黑的应用程序文件夹),并保留' asp_client'文件夹和siteminder' web.config'完整。卸载后文件夹如下所示

enter image description here

在IIS中,网站虚拟目录被删除,在下面的图像中,文件框内的文件夹被完全删除,

enter image description here

再次安装应用程序后,WIX会安装应用程序,但无法找到Siteminder虚拟目录,

enter image description here

请帮我找出一种方法,以便WIX不会从IIS中删除Siteminder虚拟文件夹。

1 个答案:

答案 0 :(得分:1)

WIX卸载程序似乎删除了Siteminder虚拟目录。根据您的问题,Siteminder设置位于网站内(如IIS中所示)。当< iis:WebSite>时会发生这种情况。元素在里面< Component>元件。里面的任何东西< Component>在卸载它时由WIX拥有它将删除< Component>。

下的元素

你还没有分享你的WIX的xml代码,但我想你的< iis:WebSite> 元素应该是这样的,

<iis:WebSite Id='DefaultWebSite' Description='Your-App-Name'>
  <iis:WebAddress Id='AllUnassigned' Port='8080' />
</iis:WebSite>

而不是这样,

<Component Id="Your-Component-Ref-Id">
  <CreateFolder />
  <iis:WebSite Id='DefaultWebSite' Description='Your-App-Name'>
    <iis:WebAddress Id='AllUnassigned' Port='8080' />
  </iis:WebSite>
</Component>

执行此操作时,WIX不会为您创建网站,它只会复制IIS中已存在的WebSite下的文件和设置(以及Siteminder虚拟目录)

希望它有所帮助。