我在[app | web] .config和程序集(例如DAL和Reporting)中声明了依赖于此连接字符串的连接字符串。配置此类程序集的最佳选择是什么:
在[app | web] .config connectionStrings部分中使用硬编码连接字符串名称,让程序集通过硬编码名称检索其配置。因此可能会有两个相同的连接字符串:“reportingServer”和“dataSource”。
将connectionStrings部分中唯一的连接字符串用于您喜欢的任何名称,并通过自定义配置部分配置DAL |报告程序集以使用此名称。现在程序集检索要使用的连接字符串名称,然后检索连接字符串
通过AppSettings硬编码密钥配置连接字符串名称。例如,您应始终拥有“reportingServerConnectionStringName”&在这种情况下,“dataSourceConnectionStringName”键。
我错过了更好的东西...
提前谢谢!
答案 0 :(得分:1)
你可以看一下这个问题的好习惯:
Connection String Best Practices
另外,ASP.NET中的企业连接字符串管理 - 最佳实践
http://weblogs.asp.net/jgalloway/archive/2004/05/11/129941.aspx
希望它有所帮助!
//编辑:添加以下内容
拥有Config文件的主要优势正是您正在处理的场景(多个项目和集中配置)。
无论哪种方式,您都需要对程序集的某些信息进行硬编码,以便能够从App / Web配置中提取所需的信息。
出于实际目的,我通常会保留两个连接字符串(“reportingServer”和“datasourceServer”),如果需要使它们动态化,请使用两个AppSettings键动态加载所需的连接字符串。
一种简单但有效的方法,可以动态加载连接字符串。
<appSettings>
<add key="reportingServer" value="reportingServerDev"/>
<add key="dataSourceServer" value="dataSourceServerDev"/>
</appSettings>
<connectionStrings>
<add name="reportingStaging" connectionString="proper connection string"/>
<add name="reportingDev" connectionString="proper connection string"/>
<add name="dataSourceStaging" connectionString="proper connection string"/>
<add name="dataSourceDev" connectionString="proper connection string"/>
</connectionStrings>
希望这次我能在正确的背景下回答。
快乐配置!
答案 1 :(得分:1)
我通常有两种处理连接字符串的方法。第一种方式是你在第一个项目符号点列出的方式。
优点是:
缺点是:
我使用的另一种技术与ASP.NET Membership等使用的提供者模型相同
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
moreSettings="... other settings ..." />
</providers>
</membership>
</system.web>
</configuration>
优点是:
缺点是: