ASP.Net中的web.config问题

时间:2010-10-09 17:14:19

标签: c# asp.net .net visual-studio-2010 web-config

我正在使用VSTS 2010 + ASP.Net + C#4.0来学习其他人的WCF应用程序代码。我发现除了Web.Config之外,还有Web.Debug.config和Web.Release.config。我搜索了Web.Config的内容,但找不到对Web.Debug.config和Web.Release.config的任何引用。但是在VSTS 2010 IDE解决方案资源管理器中,我发现Web.Config中有一个箭头指向Web.Debug.config和Web.Release.config - 所以似乎有引用关系。这让我很困惑。

在所有3个配置文件中,有相同的项目具有不同的值,例如,在web.config中,有以这种方式定义的连接字符串DBConnectinString,

  <connectionStrings>
    <add name="DBConnectinString" connectionString="data Source=10.10.10.123;uid=foo;pwd=foo;database=FOO" providerName="System.Data.SqlClient"/>
  </connectionStrings>

在Web.Debug.config中,连接字符串DBConnectinString以不同的值以几乎相同的方式定义,

  <connectionStrings>
    <add name="DBConnectinString" connectionString="data Source=10.10.10.124;uid=foo;pwd=foo;database=FOO" providerName="System.Data.SqlClient"/>
  </connectionStrings>

我的问题是,

  1. Web.Config与Web.Debug.config / Web.Release.config之间的关系是什么?
  2. 为什么在Web.Config和Web.Debug.config / Web.Release.config中定义具有不同值的相同项目?

2 个答案:

答案 0 :(得分:2)

您有不同的配置文件用于不同的设置。将Debug视为本地环境设置,例如连接到testserver的连接字符串,调试变量等等.Release设置将包含生产服务器的连接字符串等设置。

在顶部栏中,运行调试旁边应该是一个包含所有可用设置的下拉列表。你也可以添加一些。

此设置对于单击部署非常有用,例如带有VS2010的新WebDeploy

修改
此链接How to use web.config transforms to replace appSettings and connectionStrings?应向您显示有关web.config转换的基本演练

答案 1 :(得分:1)

这是Visual Studio 2010中的新功能。它允许您为构建配置方案提供不同的配置文件。因此,当您构建调试模式时,它将包含Web.Debug.Config文件,在构建发布时也是如此。

这允许您为数据库维护不同的配置 - 一个用于您的开发环境和您的实时环境。

希望有所帮助!