【发布时间】:2011-04-27 12:56:41
【问题描述】:
我们有一个使用 SQL Server 会话状态的 ASP.NET 网站。状态在Web.config中配置如:
<sessionState mode="SQLServer" sqlConnectionString="data source=TheServer;
User ID=TheUser;password=ThePassword;" cookieless="false" timeout="480"/>
但是有三种环境(开发/登台/生产)。所有其他连接字符串的配置如下:
<configuration>
<connectionStrings>
<add name="Development_Db1" connectionString="..."/>
<add name="Production_Db1" connectionString="..."/>
</connectionStrings>
</configuration>
在运行时,我们根据主机名选择一个连接到数据库。不幸的是,会话状态连接字符串似乎在web.config 中硬编码。
有没有办法在运行时配置 SQL Server 会话状态,或者让它引用来自connectionStrings 部分的连接字符串?
【问题讨论】:
-
所以基本上你在一个配置文件中拥有所有环境的信息?您不想每个环境使用一个文件吗?
-
@GôTô:是的,所有环境的所有信息都在一个配置文件中。在这里使用相对较旧的系统,我的工作是将其从进程内切换到 sqlserver 状态。
-
总的来说,这是一个很好的问题,但我不喜欢将所有连接字符串保存在一个地方的想法。生产写入开发环境的机会太大,反之亦然......
-
@RedFilter 我完全同意。在尝试从同一个地方引用生产和开发环境之前,我已经在场景中工作过,很容易把事情搞砸。
标签: c# asp.net session-state