无法加载类型 Microsoft.Web.Redis.RedisSessionStateProvider

问题描述 投票:0回答:1

我收到错误 无法加载类型“Microsoft.Web.Redis.RedisSessionStateProvider”,这是 Windows 事件查看器中的错误详细信息,应用程序使用 ASP.NET 4.8,我手动将 DLL 文件添加到 bin文件夹,因为应用程序很旧并且不使用任何包管理器。

web.config

<sessionState mode="Custom" customProvider="MyRedisSessionStateStore">
    <providers>
        <add name="MyRedisSessionStateStore"
        type="Microsoft.Web.Redis.RedisSessionStateProvider"
        host="localhost"
        port="6379"
        ssl="false"
        accessKey=""
        />
    </providers>
</sessionState>

事件查看器:

Event code: 3008 
Event message: Er is een configuratiefout opgetreden. 
Event time: 1-4-2024 11:38:19 
Event time (UTC): 1-4-2024 11:38:19 
Event ID: 6008a0a85a8e47918ec3eb85f1bec3fa 
Event sequence: 2 
Event occurrence: 1 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/2/ROOT-13-133564450990873787 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: C:\inetpub\wwwroot\steam2\ 
    Machine name: MININT-JPP0LTV 
 
Process information: 
    Process ID: 22060 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\codelogic 
 
Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: Kan het type Microsoft.Web.Redis.RedisSessionStateProvider niet laden. (C:\inetpub\wwwroot\steam2\web.config line 187)
   bij System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)
   bij System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit, Boolean ignoreCase)
   bij System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType)
   bij System.Web.SessionState.SessionStateModule.SecureInstantiateProvider(ProviderSettings settings)
   bij System.Web.SessionState.SessionStateModule.InitModuleFromConfig(HttpApplication app, SessionStateSection config)
   bij System.Web.SessionState.SessionStateModule.Init(HttpApplication app)
   bij System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
   bij System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
   bij System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
   bij System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

Kan het type Microsoft.Web.Redis.RedisSessionStateProvider niet laden.
   bij System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
   bij System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)

 
 
Request information: 
    Request URL: http://localhost:8037/ 
    Request path: / 
    User host address: ::1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: IIS APPPOOL\codelogic 
 
Thread information: 
    Thread ID: 87 
    Thread account name: IIS APPPOOL\codelogic 
    Is impersonating: False 
    Stack trace:    bij System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase)
   bij System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit, Boolean ignoreCase)
   bij System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType)
   bij System.Web.SessionState.SessionStateModule.SecureInstantiateProvider(ProviderSettings settings)
   bij System.Web.SessionState.SessionStateModule.InitModuleFromConfig(HttpApplication app, SessionStateSection config)
   bij System.Web.SessionState.SessionStateModule.Init(HttpApplication app)
   bij System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
   bij System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
   bij System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
   bij System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
 
 
Custom event details: 

我正在尝试使用 Redis 在 ASP.NET 和 ASP.NET Core 之间共享会话状态,我尝试提供正确的配置来加载正确的类型,但它仍然不起作用。

asp.net vb.net asp.net-core redis
1个回答
0
投票

定义会话状态提供程序的 web.config 在哪里?如果它是根 web.config (

C:\inetpub\wwwroot\web.config
),请在
wwwroot
下创建一个 bin 文件夹,然后在其中添加 DLL。

© www.soinside.com 2019 - 2024. All rights reserved.