Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么要实例化多个SessionStateStoreProviders?_C#_Asp.net_Iis_Iis Express - Fatal编程技术网

C# 为什么要实例化多个SessionStateStoreProviders?

C# 为什么要实例化多个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

我正在开发一个Redis
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)时,可能会发生这种情况和许多其他奇怪的事情。