【问题标题】:How to prevent msdeploy from overwriting IIS site configuration on server stored in web.config如何防止 msdeploy 覆盖存储在 web.config 中的服务器上的 IIS 站点配置
【发布时间】:2019-01-07 23:18:15
【问题描述】:

我正在使用 VS2017 进行部署,而 MSdeploy WMSVC 似乎正在覆盖我正在部署的 IIS 站点设置。

站点设置,在 IIS 管理器中,有 IIS 身份验证面板,匿名身份验证凭据设置为应用程序池标识。

部署后,所有请求都会收到 401.3 未授权错误,因为匿名身份验证凭据设置被设置为用户:

很明显,由于 SERVER 特定设置和 DEVELOPMENT 特定设置之间的冲突,这将被覆盖。

在任何 MSDeploy 方案中,我们可以使用什么策略来防止目标 IIS 设置被开发服务器设置影响?我的第一个想法是,IIS 首先查找包含 system.webService 的 site.config,然后 web.config 更新/覆盖其中任何一个,即<handler remove key="xxx" /> 等等。这只能通过 XDT 转换解决吗?

【问题讨论】:

    标签: visual-studio-2017 iis-8 msdeploy


    【解决方案1】:

    在我看来,解决此问题的最佳解决方案是使用web.config XDT transforms。 由于 web.config 文件在部署到 IIS 服务器时也会发布。如果您在 web.config 中设置了 anonymousAuthentication 设置,它将使用 web.config 设置而不是您的服务器默认设置。

    这是另一个解决方案(它会显示错误页面):

    如果您不想让 web.config 修改默认的 IIS 设置,您可以修改功能委托以禁用从 web.config 覆盖设置。

    您可以从 IIS 管理功能中找到它:

    选择只读:

    注意: 如果您从 web.config 修改匿名身份验证。您将面临以下错误:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      相关资源
      最近更新 更多