asp.net – Web.config Build vs Release transform不工作

前端之家收集整理的这篇文章主要介绍了asp.net – Web.config Build vs Release transform不工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个通过实体框架连接到远程数据库的ASP.NET Web应用程序项目。在调试期间(例如在本地计算机上运行项目),数据库的IP地址与释放期间不同(例如,将项目上传到我的Web服务器并从浏览器运行)。到目前为止,我一直手动更改Web.config文件中的数据库连接字符串,以便在两者之间进行切换(基本上我不得不使用连接字符串,一个名为“Debug”和一个“Release”,只要我部署了名称)。

现在我只是注意到,应该可以通过Web.config Transformation Syntax自动修改的连接字符串放在Web.Release.config版本中,然后在DLL被安装在Release配置下时使用。

但是对我来说似乎不起作用

这是我的常规Web.config文件的相关部分(它保存本地使用的调试连接字符串):

<?xml version="1.0"?>
<configuration>

  <connectionStrings>
    <!-- Debug connection string. Release connection string is in Web.Release.config file -->
    <add name="DatabaseEntities" connectionString="A" providerName="System.Data.EntityClient" />
  </connectionStrings>

</configuration>

这是Web.Release.config文件,根据示例,如果DLL处于“释放”模式,则应将“DatabaseEntities”连接字符串“A”替换为“B”

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <!-- Replace the DatabaseEntities connection string with the Release version (local IP address) -->
  <connectionStrings>
    <add name="DatabaseEntities"
      connectionString="B"
      xdt:Transform="Replace" xdt:Locator="Match(name)"/>
  </connectionStrings>

</configuration>

(显然“A”和“B”只是我真正的连接字符串的占位符)

当我调试应用程序(例如只需按F5)时,使用默认的Web.config,我可以访问数据库。然后,我通过配置管理器将构建配置更改为Release。解决方案中的所有项目都设置为Release配置。然后我构建解决方案(只需通过构建,甚至通过完整的重建(例如清理,重建))。我将新建的DLL上传到Web服务器,以及Web.config和Web.Release.config文件,当我尝试访问数据库时,我仍然无法通过调试IP地址访问数据库因此找不到它…

看来Web.Release.config文件完全被忽略,或至少连接字符串没有被替换。

我究竟做错了什么?转换语法是否错误?我没有正确地在发布模式下构建应用程序吗?

感谢任何帮助…

解决方法

Then I Build the solution (just via Build or even via a complete
rebuild (e.g. Clean,Rebuild)). I upload the newly built DLLs to the
webserver,as well as the Web.config and Web.Release.config files

有你的错误:如果您简单地构建,Web配置转换将不适用于您的本地环境。你需要发布。

您的部署过程似乎很奇怪:您只是复制DLL,Web.config和web.Release.config。对我来说,似乎你复制了你的源代码而不是编译的应用程序。已发布的WebApplication不包含web.release.config。

您应该将您的项目(右键单击WebApplication – > Publish)发布到本地文件系统,然后从中复制文件,或使用您选择的其他部署方法

2年前,我写了一篇关于web.config转换的文章。它为您提供了VS 2010(VS 2012中发布对话框更改)的分步教程:http://www.tomot.de/en-us/article/5/asp.net/how-to-use-web.config-transforms-to-replace-appsettings-and-connectionstrings

原文链接:https://www.f2er.com/aspnet/253624.html

猜你在找的asp.Net相关文章