【问题标题】:WIX Installer deletes Siteminder virtual directory from root folderWIX 安装程序从根文件夹中删除 Siteminder 虚拟目录
【发布时间】:2014-03-26 22:48:34
【问题描述】:

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

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

上图中的 web.config 包含所有 Siteminder 相关的配置设置。我的应用程序 web.config 没有与站点管理员相关的条目。换句话说,Siteminder 对我的应用程序是透明的。 当 WIX 安装应用程序时,它会安装我在上图中涂黑的文件夹下的所有内容。卸载时,它会删除应用程序文件夹(上图中涂黑的那个),并保留“asp_client”文件夹和站点管理器“web.config”完好无损。卸载后的文件夹是这样的,

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

再次安装应用程序后,WIX 可以正常安装应用程序,但找不到 Siteminder 虚拟目录,

请帮我想办法让 WIX 不会从 IIS 中删除 Siteminder 虚拟文件夹。

【问题讨论】:

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


    【解决方案1】:

    WIX 卸载程序似乎删除了 Siteminder 虚拟目录。根据您的问题,Siteminder 设置位于网站内(如 IIS 所示)。这将在 元素位于 元素内时发生。 中的任何内容在卸载时都归 WIX 所有,它将删除 下的元素。

    您还没有分享您的 WIX xml 代码,但我认为您的 元素应该是这样的,

    <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 中已存在的网站下的文件和设置(以及 Siteminder 虚拟目录)

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多