【问题标题】:VS2012 WebDeploy Publish Breaking Web.ConfigVS2012 WebDeploy 发布破坏 Web.Config
【发布时间】:2012-12-07 04:39:18
【问题描述】:

我有一个从 Visual Studio 2012 开发和发布的 MVC3 Web 应用程序项目。这是最近迁移的一个 VS2010 项目。

我的 web.config 是使用 <location inheritInChildApplications="false"> 标签设置的,因此在虚拟目录中运行的子应用程序不会接受这些设置。

我设置了一个 WebDeploy 发布配置文件,它在 VS2010 中完美运行,但在从 VS2012 发布时破坏了我的应用程序。它在关闭上述</location> 标记之后添加了一个<connectionStrings> 节点,即使我的<location> 节点中已经有一个<connectionStrings> 节点。由于配置文件无效,这会破坏应用程序。

我尝试从头开始重新创建配置文件,但没有解决问题。

根据我在此处阅读的内容,http://msdn.microsoft.com/en-us/library/dd465337.aspx,取消选中“Use this connection string at runtime”复选框应该会指示发布过程添加连接字符串,但无论如何它都会这样做。

如果我不使用<location inheritInChildApplications="false">,我认为这不会是一个问题,因为连接字符串会被添加到正确的位置。

另外,请注意,如果我发布到文件系统而不是使用 WebDeploy,则发布的 Web.Config 会正确创建并且不会添加额外的连接字符串节点。

是否有任何已知的解决此问题的方法?

【问题讨论】:

    标签: web-config visual-studio-2012 webdeploy


    【解决方案1】:

    正如我所怀疑的,这个问题与inheritInChildApplications 属性有关。这可能是 Visual Studio 2012 Web 部署中的一个错误,即部署过程总是将连接字符串添加到配置文件中,即使您告诉它不要这样做。就我而言,它还添加了错误的位置,这破坏了我的应用程序。

    为了解决这个问题,我只是停止使用该属性并使用here 列出的选项之一关闭配置继承。

    我现在可以毫无错误地发布,但该过程仍将连接字符串添加到已部署的配置文件中。烦人,但不妨碍表演。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      相关资源
      最近更新 更多