【问题标题】:Custom SessionState Oracle SessionStateStoreProviderBase自定义 SessionState Oracle SessionStateStoreProviderBase
【发布时间】:2014-08-05 23:12:00
【问题描述】:

我创建了一个自定义会话类并继承了连接oracle的SessionStateStoreProviderBase

我用的是this how-to,只需替换成Oracle.DataAccess的连接类即可。

直到那时一切都在本地工作,但是当我在具有自定义类 SessionStateStoreProviderBase 的 iis 7.5 服务器上发布时,它仍然工作,但变量“session”(HttpSessionStateBase)为零(null)。例如:会话[“idUser”]。 有什么我忘记了吗?请我需要帮助,因为文档似乎对此并不清楚。

我的 web.config:

   <sessionState timeout="30" mode="Custom" cookieless="false" customProvider="CustomSessionProvider" sessionIDManagerType="namespace.CustomSessionIdManager">
      <providers>
        <add name="CustomSessionProvider" type="namespace.SessionDataProvider" connectionStringName="connectionOracle" />
      </providers>
    </sessionState>
    <authentication mode="Forms">
      <forms loginUrl="~/Login" defaultUrl="~/Inicio" />
    </authentication>

错误日志 IIS:

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2014-08-05 01:14:37
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2014-08-05 01:14:37 192.168.xxx.xx GET / - 80 - 10.100.xxx.xx Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/34.0.1847.131+Safari/537.36 302 0 0 6239
2014-08-05 01:14:37 192.168.xxx.xx GET /Inicio - 80 - 10.100.xxx.xx Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/34.0.1847.131+Safari/537.36 500 0 0 374

控制器中的异常:

对象引用未设置为对象的实例 之前验证会话是否为空。

谢谢。

【问题讨论】:

  • 我们可能需要您的部分代码
  • 我没有发布我的代码,因为它很大并且等于这个实例,只替代了oracle odbc连接。见:msdn.microsoft.com/pt-br/library/ms178589(v=vs.100).aspx
  • Session_Start 也没有被执行。自定义时,会话没有任何作用。仅使用 cookie 和 in_proc。谁能帮帮我?
  • 我看了一下这个例子。那里没什么可疑的。您需要帮助调试它吗?我也会用新的信息再看一遍。
  • 我进行了本地模拟,禁用了模块会话,并在发布到服务器时重现了相同的错误。简单的登录模块似乎不起作用,我没有 iis 经验。 Ai 在任何使用会话的语句中都会出错。

标签: c# asp.net-mvc oracle visual-studio-2013


【解决方案1】:

调试我最好的自定义类会话时,我注意到在尝试转换整数时出现异常,但它可以在 localhost 上运行,但在服务器上却不行。通过使用框架而不是 GetInt32 odt Oracle 进行另一种类型的转换,Convert 绕过了这个问题。 不知道为什么会这样,但是在服务器上不行,又重现了同样的情况

由于这个错误,他没有到达方法“CreateNewStoreData”。

效果很好。例如: reader.IsDBNull(2) ? 0 : Convert.ToInt32(reader2);

效果不好。例如: reader.IsDBNull(2) ? 0 : reader.GetInt32(2);

感谢您的帮助和关注。

感谢“Alireza”! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多