5

我最近开始在服务器和 Visual Studio 2012 上使用带有 IIS 7 的 Web Deploy。我有问题的项目是一个 ASP.Net MVC 3 Web 应用程序。

我已经正确设置了所有内容并且发布工作正常,并且我获得了所需的连接字符串转换,因此目标服务器可以访问正确的数据库。

但是,appSettings服务器上的一些值需要与本地计算机上用于开发的值不同。

假设对于这个示例,我有一个开发 web.config,其中包含以下内容:

<appSettings>
    <add key="CommonName" value="AlwaysTheSame" />
    <add key="VariableName" value="LocalValue" />
<appSettings>

当它发布时,我希望它在服务器上如下所示:

<appSettings>
    <add key="CommonName" value="AlwaysTheSame" />
    <add key="VariableName" value="ServerValue" />
<appSettings>

我想我需要更改文件夹中的.pubxml文件中的某些内容,Properties > PublishProfiles因为这似乎是连接字符串的更改方式。但是,我没有找到有关如何修改此文件以满足我的需要的任何有用信息。我需要做哪些改变?

4

2 回答 2

7

您可以使用配置转换,它允许您为不同的环境拥有多个版本的配置文件:

在此处输入图像描述

然后在发布时,您选择您的环境,这将使用特定于环境的配置覆盖 web.config。

为了在不同的部署类型中保持一个值一致,您可以将其存储在 mainweb.config中,并将其他值存储在web.live.configetc中。

有关配置转换的更多信息,请阅读 Vishal R. Joshi 的这篇精彩博文:

http://blogs.msdn.com/b/webdev/archive/2009/05/04/web-deployment-web-config-transformation.aspx

于 2012-11-07T12:10:14.223 回答
2

如果您事先知道要在服务器上使用的值,则可以使用 Web.config 转换。
但是,如果您需要在服务器上的部署过程中将这些值作为参数输入,那么您可以使用此 MSDN 文章中所述的 Web 部署参数。

于 2015-01-13T08:23:49.993 回答