【问题标题】:Why do my IIS site-specific application settings disappear?为什么我的 IIS 站点特定应用程序设置消失了?
【发布时间】:2015-01-03 13:35:12
【问题描述】:

我在 Windows Server 上使用 IIS 托管一个 ASP.NET C# 网站。我使用 Web Deploy 发布到 IIS 服务器。我通过 IIS 的特定于站点的应用程序设置配置了一些应用程序设置 - 主要是我不希望在项目本身的 app.config 中以纯文本形式显示的密码。每次发布时,我通过 IIS 创建的设置都会消失。我认为出版已经写完了。我不知道如何让他们通过发布坚持下去。有谁知道如何通过 Web Deploy 发布来保持 IIS 应用程序设置?

【问题讨论】:

  • 我可能是错的,但我认为这是因为当您在 IIS 中进行这些更改时,只需编辑您的 web.config 并添加它们,它就会将它们保留下来。因此,当您重新部署时,会复制一个新的 web.config,并覆盖您的设置。如何防止这种情况,我不确定...
  • 除非您可以对开发 web.config 文件应用相同的更改,否则设置将继续被覆盖。您在 IIS 应用程序中所做的未映射到开发生成输出文件夹的更改将不会在 Web 部署期间保留。我避免在机器之间自动部署 Web 配置文件,因为这可能会导致问题。

标签: c# asp.net iis app-config webdeploy


【解决方案1】:

您还可以: - 为部署创建一个新的构建配置 -为此构建配置添加 web.config 转换 - 使用此构建配置进行部署 我一般都是这样的

【讨论】:

    【解决方案2】:

    不确定这是否能解决您的问题,但您可以尝试以下方法:

    每个配置部分都有一个名为“configSource”的可选属性 指向外部文件。因此,您可以分解您的 web.config 分成几个文件并相应地更新它们:

    web.config:

    ...
    <configuration>
        <appSettings/>
        <connectionStrings configSource="connectionStrings.config"/>
        <system.web>
    ...
    

    connectionStrings.config:

    <connectionStrings>
        <add name="defaultConnectionString" connectionString="..." providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    然后您可以将 connectionString.config 设置为不包含在项目的输出中,并在服务器上保持不变。

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多