我正在尝试在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时都需要进行重大代码更改。
那么,有没有更简单的方法来进行这些修改?
答案 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" />
您会注意到它有一些不同的属性:
而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/
处获得更多信息