问题标签 [session-state-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1421 浏览

asp.net - 从自定义 ASP.NET SessionStateProvider 类引发 Session_OnStart 事件

我正在开发一个使用内部开发的自定义 SessionStateProvider 类的 asp.net 项目。

显然,Session_OnStart 事件没有触发。我在 Global.asax 中有代码来处理该事件。我只能通过将 Web.config 更改为使用默认的 SessionStateProvider 来执行此代码。

当我使用自定义 SessionStateProvider 类时,我必须怎么做才能执行我的 Session_OnStart 代码?我可以访问源代码。

更新:它在 MSDN 上清楚地表明,通常Session_OnStart只有在 Session 模式为 InProc 时才会触发,所以我将不得不做一些特别的事情来按照我想要的方式连接它。

我在 web.config 中的会话状态配置如下所示:

再次更新:今天早上我发现了一些有趣的东西。在阅读了 Chris 的回答后,我尝试只使用客户SessionStateProvider并删除了 custom 的代码SessionIDManager。一旦我这样做了,我立即能够看到该Session_OnStart方法执行。问题是,我的自定义SessionStateProvider 需要自定义SessionIDManager. 事件究竟是从哪里Session_OnStart触发的?看起来它与 相关SessionIDManager,而不是SessionStateProvider.

0 投票
2 回答
2106 浏览

asp.net-mvc - 在使用 AppFabric 缓存的 MVC SessionState 中使用 WCF DataContract

我有一个数据访问层、一个服务层和一个表示层。表示层是 ASP.NET MVC2 RTM(Web),服务层是 WCF(服务)。这都是 .NET 3.5 SP1。

问题是在服务中,被返回的对象被标记了[DataContract]属性。Web 使用 AppFabric 缓存(又名 Velocity)SessionStateProvider 来存储会话状态。因此,我存储在会话中的任何内容都必须是可序列化的。

问题来了:DataContracts 没有标记,[Serializable]据我所知,通过将它引入一个已经标记有[DataContract]一些问题的类会出现,所以我不相信这是一个解决方案。

我最初计划在 Web 层中使用 DataContracts,将它们用作与渲染 DataContracts 相关的视图的模型(可能嵌套在更高级别的 ViewModel 类中)。但是由于会话状态提供程序要求存储在其中的所有对象都是可序列化的,我开始重新考虑这种策略。不过最好有,因为它们包含使用IDataErrorInfo接口的验证逻辑,并且相同的验证逻辑可以在 MVC 中作为模型绑定的一部分重用。

您认为让我减少所需工作的最佳方法是什么?

我目前想到了以下不同的方法:

A. 在 Web 项目中创建一个“ServiceIntegration”部件。

这将是我的控制器和我的 WCF 服务层之间的中间人。ServiceIntegration 部分将使用 DataContracts 与服务层通信,并使用 ViewModels 与 Web 层通信,但必须使用双向 Transformer 在 DataContracts 和 ViewModels 之间进行转换。

此外,由于 IDataErrorInfo 验证不可重用,因此也有必要为每个 DataContract 创建一个验证器,它使用 Transformer 从 ViewModel 转换为 DataContract,使用 IDataErrorInfo 执行验证并返回其结果。这将在控制器的动作方法中使用(例如if (!MyValidator.IsValid(viewModel)) return View();

需要不同的类:xDataContract、xViewModel、xTransformer、xValidator

B. 在 web 项目中创建一个 'SessionIntegration' 部分

这将是控制器(或访问会话的任何东西)和会话本身之间的中间人。任何需要访问会话的东西都将通过这个类。DataContracts 将在整个应用程序中使用,除非它们被存储到会话中。SessionIntegration 部分负责将 DataContract 转换为某种 ISerializable 形式并返回。由于在 DataContract 上使用了 IDataErrorInfo 接口,因此不需要额外的验证器。

需要不同的类:xDataContract、xTransformer、xSerializableForm


注意:在这两种情况下仍然会有 ViewModels,但是使用 (B) 我可以从 DataContracts 组合 ViewModels。

(B) 的好处是不需要额外的验证器。


在我开始全面实施 (A)/(B) 之前,我想要一些反馈。目前,我开始倾向于(B),但是,(A)可能更灵活。无论哪种方式,对于它的价值来说,这似乎是太多的工作。有没有其他人遇到过这个问题,你同意/不同意我的观点,和/或你有其他解决问题的方法吗?

谢谢,

詹姆士

0 投票
1 回答
690 浏览

html - 示例 Ext Js 状态提供?

谁能告诉我 Ext JS 提供程序的示例,特别是如果它打算使用任何 HTML 5 存储机制。

谢谢。

0 投票
2 回答
1218 浏览

asp.net - 自定义会话状态提供程序初始化期间的对象引用错误

我编写了一个自定义会话状态提供程序,它在调试模式下工作正常,但一旦部署在服务器(IIS 6)上,我会收到以下错误:

编辑 第 282 行来自 web.config 提供者信息,下面的第 3 行

0 投票
2 回答
5814 浏览

asp.net-mvc - 在 ASP.NET MVC 中实现自定义会话状态提供程序

我正在为我的 ASP.NET MVC 应用程序实现自定义会话状态提供程序。我的要求是我必须将会话数据存储xml在 Sql 服务器中的自定义表中。

我可以使用现有的sql 会话状态提供程序(覆盖某些方法)还是必须通过实现抽象类从头开始创建SessionStateStoreProviderBase

0 投票
1 回答
1764 浏览

session - C# SessionState 自定义。会话永不过期

我有一个 MVC3 应用程序和 MySQL 持久数据库会话的问题。

问题是会话永不过期。

  • ResetItemTimeout 方法在 GetItemExclusive 之前是 callign
  • GetItemExclusive 方法检查过期字段是否小于现在。
  • 由于此方法更新过期日期并添加了 web.config 上指定的分钟数,因此永远不会发生这种情况。

我的 web.config 是:

对于会话状态:

对于表单授权:

问题是会话永不过期。我正在使用以下页面(http://msdn.microsoft.com/en-us/library/ms178589%28v=vs.80%)中的以下代码(唯一的修改是我使用的是 MySql 连接) 29.aspx)

有人能帮我吗?。

非常感谢您的回答。

胡安

0 投票
1 回答
1011 浏览

asp.net - Application_Start 中的会话状态提供程序如何设置

我需要在代码而不是 web.config 中设置会话状态提供程序的能力。我尝试在 Application_Start 中添加代码

但问题是会话正在恢复到 InProc 模式而不是自定义。有没有办法在代码中声明提供者?

0 投票
1 回答
135 浏览

angularjs - 如何在不使用父级抽象的情况下实现嵌套状态(使用命名视图)

我对 Angular 真的很陌生,我正在尝试构建一个导航页面。定义的结构是: 主页上有一个导航到 main-page1.html 的按钮 main-page1.html 包含有 4 个选项卡的菜单栏。main-page1.js 有一个模块和一个状态(父状态)。所有 4 个选项卡都在 tabs.js 文件中,并且有一个模块和 4 个状态(每个状态对应不同的状态)。Tab1 是默认选项卡,并与父 url 链接

问题:我不应该在父状态中使用 abstract: true 。因此,当我到达 main-page.html 时,Tab1 的内容没有呈现。但是,它仅在我单击选项卡一次或两次时才会呈现。这适用于 abstract:true 但不幸的是,由于某种原因,我不能在父状态中使用抽象。有什么解决方法吗?

0 投票
2 回答
561 浏览

azure - 在 Azure 上配置 Redis 会话状态

我已经让 Redis 会话状态提供程序在本地与我的 ASP.Net 站点和在 Azure 中与我的 Azure 网站一起正常工作。但是我有一个关于配置的问题......

有没有办法使用网站属性屏幕中的应用程序设置(或配置字符串)部分将配置存储在 Azure 网站本身?

这将非常方便,因为这意味着我在发布时不必修改 web.config 文件。我已经为连接字符串和应用程序设置执行此操作,但我只是看不到<system.web>对 web.config 文件节点中的任何内容(如节点)执行此操作的方法<sessionState>

0 投票
3 回答
1124 浏览

c# - ASP.NET MVC 中的 DynamoDB 会话状态

我创建了一个新的 ASP.NET MVC 5 项目。我已经通过 Nuget 安装了适用于 .NET 和 Session Provider 的 AWS 开发工具包,并且我在 Amazon 中阅读了这篇文章:文章

我在 Web.Config 中有这个配置

我使用IIS Express运行 Web 应用程序,一切正常(我可以登录和注销),但如果我访问我的 DynamoDB,我在表 ASP.NET_SessionState 中没有任何项目。

它的工作方式就像自定义状态提供程序被忽略...

我究竟做错了什么?

谢谢!!