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文件完全被忽略,或至少连接字符串没有被替换。 我究竟做错了什么?转换语法是否错误?我没有正确地在发布模式下构建应用程序吗? 感谢任何帮助… 解决方法
有你的错误:如果您简单地构建,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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – Css和Js捆绑,IController Exception
- asp.net-mvc-2 – 查找要在ASP.NET MVC项目上使用的授权框架
- .net core使用sentry添加程序异常报警功能
- asp.net – 是否值得在IIS7中启用动态压缩?
- asp.net-mvc – MVC 3 – 使用List类型属性绑定到复杂类型
- asp-classic – 使用TFS 2010“构建”经典ASP
- asp.net-mvc – 如何将模型传递给部分视图
- asp.net-mvc – 在ASP.NET MVC 3 Action方法中并行运行任务
- asp.net – Response.Write和UpdatePanel
- asp.net – 使Windows身份验证和WKHTMLToPDF发挥得很好