IIS7 ASP.NET连接字符串覆盖

时间:2014-08-05 11:27:08

标签: c# asp.net sql-server-2008 iis-7 .net-4.0

我正在尝试在IIS7上部署ASP .NET网站。

dev版本有这样的连接字符串:

<appSettings>
<add key="ConnectionString" value="Data Source=localhost,1533;Network Library=dbmssocn;Database=Leads_DB1;Connection Timeout=15;Packet Size=4096; Integrated Security=no;User ID=localdbuser;Password=Pa55w0rd!; Encrypt=no;"/>

<!--DEVELOPMENT DATABASE -->
<add key="ConnectionString" value="Data Source=localhost,1533;Network Library=dbmssocn;Database=Mail_Development;Connection Timeout=15;Packet Size=4096; Integrated Security=no;User ID=localdbuser;Password=Pa55w0rd!; Encrypt=no;"/>
<add key="ConnectionStringCRM" value="Data Source=localhost,1533;Network Library=dbmssocn;Database=CRM_MAIL_QUEUE;Connection Timeout=15;Packet Size=4096; Integrated Security=no;User ID=localdbuser;Password=Pa55w0rd!; Encrypt=no;"/>
</appSettings>

现在,当我使用IIS管理器连接字符串对话框创建新的连接字符串时,我需要为连接提供一个名称,它会创建如下内容:

<connectionStrings>
<add name="Leads_DB1" 
connectionString="Data Source=.;Initial Catalog=Leads_DB1;Integrated Security=no;User ID=localdbuser;Password=Pa55w0rd!; Encrypt=no;"/>
 </connectionStrings>

问题是在这两种情况下我都没有从App获得数据库连接。

有什么方法可以让Dev版本有效吗?

我担心,如果我使用IIS生成的默认配置,那么在每次调用DB时都需要进行重大代码更改。

那么,有没有更简单的方法来进行这些修改?

2 个答案:

答案 0 :(得分:0)

实现此目标的一种标准方法是使用web.config转换。您可以在web.config中设置默认连接字符串(将在开发中使用),并在部署到qa / production时提供连接字符串(提供qa或prod连接字符串。)

有关详细信息,请参阅this

答案 1 :(得分:0)

connectionString和appSettings之间存在根本区别:

他们寻找不同的东西。在.NET 2.0及更高版本中:

connectionString对象是具有要设置的特定属性的XML节点;从语义上讲,它指的是数据库连接字符串。

例如,connectionString如下所示:

<connectionStrings>
  <clear/>
  <add name="LocalSqlServer"
      connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True"
      providerName="System.Data.SqlClient" />

您会注意到它有一些不同的属性:

  • 名称
  • connectionString:它里面有一个特定的字符串,它需要一个初始目录,一个安全机制(在这种情况下是集成安全性
  • 的providerName

而appSettings只是一个用户定义的键值对,允许您......嗯...设置应用程序设置。它可以是任何东西:

<appSettings>
  <add key="Mom" value="Your"/>
  <add key="UseCache" value="True"/>
  <add key="MapsKey" value="1234567890-AA"/>
  <add key="SMTPServer" value="smtp.peterkellner.net"/>
</appSettings>

您可以在http://peterkellner.net/2008/02/23/webconfigbestpractice/

处获得更多信息