C# 为什么要实例化多个SessionStateStoreProviders?
我正在开发一个RedisC# 为什么要实例化多个SessionStateStoreProviders?,c#,asp.net,iis,iis-express,C#,Asp.net,Iis,Iis Express,我正在开发一个RedisSessionStateStoreProvider。在我的web.config中,我在system.web元素中添加了以下内容 <sessionState mode="Custom" customProvider="RedisSessionStateProvider"> <providers> <clear /> <add name="RedisSessionStateProvider" t
SessionStateStoreProvider
。在我的web.config
中,我在system.web
元素中添加了以下内容
<sessionState mode="Custom" customProvider="RedisSessionStateProvider">
<providers>
<clear />
<add name="RedisSessionStateProvider"
type="Harbour.RedisSessionStateStore.RedisSessionStateStoreProvider" />
</providers>
</sessionState>
在第二个图标上
有趣的是,当我切换到IIS Express时,创建了两个实例。但是,在加载页面后刷新页面时,会创建第三个实例。更奇怪的是,几秒钟后它就被处理掉了
我找不到任何支持这种行为的文档。有人知道这方面的信息吗?这是故意的吗?这可能是由于多个工作进程造成的吗?您有没有发现问题的原因?@Shedal-Nope:(.我现在没有时间,但我们可以使用Reflector/其他反编译器并分析实例化提供程序的调用图。我刚刚想到。ASP.NET可能会在每个AppDomain中生成多个HttpApplication实例。这是为了能够并行处理多个HTTP请求。在这种情况下,我假设每个实例HttpApplication实例还实例化了它自己的会话状态提供程序。这难道不能解释问题吗?@Shedal-很可能是这样。但是,我的应用程序\u Start
只调用了一次。当网站在应用程序池中设置为web花园(最大工作进程数>1)时,可能会发生这种情况和许多其他奇怪的事情。