【发布时间】:2013-07-21 00:58:56
【问题描述】:
我希望在加载网页时动态更改会话状态提供程序。
在本地,在开发时,我们使用以下内容:
<sessionState mode="InProc" />
但是生产代码是这样运行的:
<sessionState mode="Custom" customProvider="CustomSessionStateProvider">
<providers>
<add name="CustomSessionStateProvider" type="Library.CustomSessionStateProvider" applicationName="AppName" />
</providers>
</sessionState>
是否无法在页面加载之前更改 sessionState 在运行时使用的提供程序?它将由某种可配置项确定:
if(Environmental.IsProduction)
{
// Use custom provider
}
else
{
// Use InProc
}
我们确实在每个环境中使用不同的配置文件,但此功能需要在所有环境中都可用。
【问题讨论】:
-
您可以使用 Web Config 转换来执行此操作。您将拥有一个用于调试模式构建的配置和一个用于发布构建的配置。我们在这里执行此操作的方式是,我们有一个 Web.Base.Config,其中包含存储在 Web 中的唯一位的大部分内容和占位符.Dev.Config 和 Web.Release.Config.
-
msdn.microsoft.com/en-us/library/dd465326.aspx - 使用 Visual Studio 部署 Web 项目的 Web.config 转换语法
-
谢谢杰米。我现在正在使用 web.config 转换。请回答,以便我接受。
标签: c# asp.net caching web-config session-state