【问题标题】:Web.Debug.config not processing substitutionWeb.Debug.config 不处理替换
【发布时间】:2012-04-03 09:06:54
【问题描述】:

我在 VS2010 中有一个 Web 应用程序,其 web.config 如下所示:

...
<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=MyProdDb;Initial Catalog=MyCat;User Id=MyUser;Password=MyPass;"
         providerName="System.Data.SqlClient" /> 
  </connectionStrings>
...

和这样的 Web.Debug.config:

...
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="ApplicationServices"
          connectionString="data source=MyDevDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
          xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
...

该项目设置为创建一个调试版本,当我在调试器中运行它时,我得到MyProdDb 而不是MyDevDb

我错过了什么?

【问题讨论】:

  • 您是在发布这个网站,还是严格意义上的编译和运行?
  • 那是因为你的 web.config 中有“MyProdDb” ??!?
  • 不幸的是,调试器不这样做。

标签: asp.net visual-studio-2010


【解决方案1】:

更新信息

现在可以处理任意基于 XML 的 .config 文件,并且可以在构建时而不是部署时进行处理

http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

非常棒的是,转换也可以直接在 Visual Studio 中预览。

【讨论】:

    【解决方案2】:

    正如人们所说,web.config 版本仅在发布 (MSDeploy) 时应用。通常的做法是将“调试”配置放在实际的 web.config 文件中,并针对您拥有的每个部署方案进行更改。

    【讨论】:

    • 谢谢,我会这样做的,它解决了问题。让我想知道 Web.Debug.config 是什么,因为 Web.Release.config 是该工作流程中唯一使用的。我还没有看到想要将调试设置从开发 PC 发布到外部服务器的设置(我想这可以用于发布到 QA,但我没有看到它这样做)。
    • 您可能想要多个的真正原因是在以下场景之一,您有多个部署环境(测试、验收、生产),您需要将“调试”版本部署到另一个环境进行诊断一个问题(可能调试意味着您关闭了自定义错误或类似的东西)
    • 这已经不是真的了,Scott Hanselman 的团队更新了。请参阅我的附加答案。
    【解决方案3】:

    我错过了什么?

    您错过了 web.config 转换仅在您进行部署时发生的事实。如果您不发布您的 Web 应用程序,您就不能期望发生任何转换。如果您只是通过按 F5 在本地运行您的网站,则不会发生转换。只有在您发布应用程序时才会执行转换。

    【讨论】:

    • 好的,我明白了......虽然我必须说这似乎是一个非常不幸的设计选择。
    • 仅供参考,不再是真的(来自 Scott Hanselman 团队的附加组件)。请参阅我的新答案。
    【解决方案4】:

    Web.config 转换仅在发布时处理。调试时(即使在发布模式下),正在使用基本的 Web.config 文件。

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 2019-03-21
      • 2018-02-23
      • 1970-01-01
      • 2017-08-08
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多