【问题标题】:How will be visual studio deployment scnerioVisual Studio 部署方案将如何
【发布时间】:2017-04-13 01:59:31
【问题描述】:
我为我的项目进行了部署。例如,我正在 Visual Studio 上开发一个 asp.net web api 或 asp.net mvc 项目。我为 ssl 使用本地数据库和本地文件用户名和密码。我完成了开发并在我的本地 iis 服务器上发布它并查看正在运行的应用程序。本地 iis 测试后,我将其加载到服务器,但有时会忘记更改 web.config 设置、连接字符串、ssl 证书路径和密码。因此用户访问的工作服务器应用程序失败。我该如何解决这个问题?
【问题讨论】:
标签:
asp.net
asp.net-mvc
visual-studio
iis
visual-studio-2013
【解决方案1】:
我所做的是使用 Transform
替换
Web.Release.config 中的配置
例如,如果在我的 Web.config 我有以下连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\sample.mdf;Initial Catalog=sample;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
在我的 Web.Replace.config 中,我像这样更新用于生产的 connectionString:
<connectionStrings xdt:Transform="Replace">
<add name="DefaultConnection" connectionString="SERVER_CONNECTION" providerName="System.Data.SqlClient" />
</connectionStrings>
请记住,我在 Web.Replace.config 中所做的转换仅适用于您发布您的网络应用程序。您无法通过仅在调试/发布模式下运行应用程序来在本地对其进行测试
【解决方案2】:
您应该实现 Web.Config 转换。检查此MSDN link 了解更多信息。
简单概括一下——通过实施 Web.config 转换,您的项目将拥有不同的 Web.Config 文件(例如,Web.config、Web.Live.config、Web.PreProd.Config 等),即每个不同的文件用于不同的构建配置。主 web.config 应保持原样。它只是您需要指定要覆盖的配置的其他配置文件。完成后,如果您使用特定的构建配置进行发布,那么新生成的 web.config(在发布文件夹中)应该包含来自 web.config 的所有配置以及您在转换后的文件中为该构建配置指定的差异。