ASP.NETC中的Oracle会话状态存储类#

ASP.NETC中的Oracle会话状态存储类#,oracle,Oracle,我正在开发项目Oracle会话状态存储类中实现,该类位于Oracle 11g客户端中,用于在web场上运行应用程序时保存用户会话 虽然我可以通过web.config使Oracle会话状态存储工作,但我需要使存储在代码中工作,因为我们的数据库连接(即密码)是加密的,只有在建立连接时才解密。不幸的是,我无法在web.config中执行此操作 我已尝试使用Initialise方法在Session_Start方法的Global.asax中实现Oracle会话状态存储类。问题是它抛出了一个错误。它调用的异

我正在开发项目Oracle会话状态存储类中实现,该类位于Oracle 11g客户端中,用于在web场上运行应用程序时保存用户会话

虽然我可以通过web.config使Oracle会话状态存储工作,但我需要使存储在代码中工作,因为我们的数据库连接(即密码)是加密的,只有在建立连接时才解密。不幸的是,我无法在web.config中执行此操作

我已尝试使用Initialise方法在Session_Start方法的Global.asax中实现Oracle会话状态存储类。问题是它抛出了一个错误。它调用的异常是“connectionStringName属性为空或在配置文件中不存在,或者在配置文件中发现无效属性。”

在Session_Start方法中,我创建了一个Name-Value集合并添加了两个变量,一个是数据库连接字符串,另一个是自定义会话存储的类型

有人知道我做错了什么吗


谢谢

首先,请确保您的
web.config
machine.config
配置正确。您可以查看或查看以下内容:

<?xml version="1.0"?>
<configuration xmlns=
  "http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add name="my_sessionstate_app_con_string" connectionString=
      "User Id=scott;Password=tiger;Data Source=Oracle"/>
  </connectionStrings>
  <system.web>
    <!-- Enable and customize OracleSessionStateProvider -->
    <sessionState mode="Custom" customProvider="MyOracleSessionStateStore">
      <providers>
        <add name="MyOracleSessionStateStore" 
             type="Oracle.Web.SessionState.OracleSessionStateStore, 
             Oracle.Web, Version=2.111.6.20, Culture=neutral, 
             PublicKeyToken=89b483f429c47342" 
             connectionStringName="my_sessionstate_app_con_string"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>
如果上面的命令行运行正常,但您的web应用程序生成RSA错误消息,请尝试将以下帐户(或您使用的特定帐户)添加到RSA容器中:

aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NETWORK SERVICE"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
顺便说一下,我不必在
Global.ascx
中实现
OracleSessionStateStore
。我只是引用了
Session[“key”]=value
var值=会话[“键]
另外,确保DBA设置了一个作业来清理会话状态表

aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NETWORK SERVICE"
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"