我可以在SQL会话状态配置中重用现有连接字符串吗?

时间:2012-07-12 06:01:20

标签: asp.net web-config connection-string session-state

我在我的应用程序中使用SQL会话状态,但是考虑到我们已经有几个连接字符串,如果所有连接字符串都保存在<connectionStrings>中,那么维护配置会更容易。

我的问题是,是否有可能以某种方式指定sessionState配置中的现有连接字符串?

   <connectionStrings>
        <add name="ConnString1" connectionString="data source=xx;Initial Catalog=zzz;"  
             providerName="System.Data.SqlClient" />
        <add name="EFConnString" 
             connectionString="metadata=res://*/EF.csdl|res://*/EF.ssdl|res://*/EF.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxx;initial catalog=yyy;App=EntityFramework&quot;" 
             providerName="System.Data.EntityClient" />
        <add name="SessionStateConn" connectionString="data source=xx;Initial Catalog=zzz;"  
             providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <sessionState mode="SQLServer" 
                  sqlConnectionString="**SessionStateConn**" 
                  sqlCommandTimeout="30" customProvider="" ... etc
    </sessionState>

2 个答案:

答案 0 :(得分:8)

任何进入MSDN文档的人都会声明,对于sqlConnectionString属性,您可以指定完整连接字符串或现有连接字符串的名称: https://msdn.microsoft.com/en-us/library/h6bb9cz9%28v=vs.85%29.aspx (参见Attributes&amp; Elements下的sqlConnectionString)

答案 1 :(得分:5)

不是真的。至少不是以直接的方式不需要更改代码或转换配置文件。 ASP.NET中这种不一致的原因是在原始版本的ASP.NET中引入了SQL Server会话状态,而在版本2.0中添加了connectionStrings部分。 sessionState标签设计师不能依赖尚未发明/发布的系统。