问题标签 [stateserver]

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 投票
2 回答
2429 浏览

session - 我可以在 Session 中存储 xmlDocument 对象吗?如何进行序列化?

我有一个 XML 文档,我想将它存储在会话中,因此在每次回发时我不需要再次从其物理路径加载它。我们正在使用状态服务器。

当我尝试将其存储在 Session 中时,出现错误:

异常详细信息:System.Runtime.Serialization.SerializationException:在程序集“System.Xml,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”中键入“System.Xml.XmlDocument”未标记为可序列化。

我的代码是这样的:

string resumeSection = string.Empty;

如何进行序列化?

当我遇到错误时, 无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许不可序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则适用相同的限制。

0 投票
1 回答
3141 浏览

c# - 使用状态服务器时关闭浏览器后会话过期

我有一个非常简单的问题,我正在使用 State Server 在我的应用程序中存储 Session。问题是,当我点击我的网站并登录我的网站以及登录后,如果我关闭浏览器并重新打开,我的会话就会丢失。我必须重新登录。即使在关闭浏览器后,我必须做些什么才能使会话保持活跃。

我的状态服务器配置如下

在我的 sesion_start 上的 globel.aspx 文件中,我正在这样做

即使在关闭浏览器后,我必须做些什么才能使会话保持活跃。

我的状态服务器会话

这是我在服务器上的设置的图像

0 投票
1 回答
1817 浏览

asp.net - 使用 StateServer 服务时查询会话数据

在 .NET 4.0 Web 应用程序中使用 StateServer 服务时,有人知道查询所有活动会话的方法吗?

在我的场景中,当用户导航到我们的一个合作伙伴站点时,我正在设置一段会话数据。然后,合作伙伴站点会定期调用我们站点上的服务,以验证会话是否仍处于活动状态并返回一些其他数据。

当我最初使用 InProc 会话时,我设法让它工作,使用中概述的解决方案:列出所有活动的 ASP.NET 会话,但是当我切换到使用 StateServer 服务时,这些技术不起作用,我无法查询会话.

有任何想法吗?

非常感谢

0 投票
1 回答
776 浏览

asp.net-mvc-3 - MVC PRG 模式与 SessionState 冲突

我有一个 MVC3 网络应用程序。我一直在使用PRG(Post-Redirect-Get)模式。那是在回发期间,如果任何模型验证失败,我将 ViewData 保存在 TempData 中,然后重定向到原始 GET 操作。

在后期行动中 -

稍后在 GET 操作中 -

这几乎是通常的做法。到目前为止,一切都运行良好。现在,我们需要改进会话持久性,即我们需要“更长”的会话。我已经决定使用ASP.Net State Server

在我将会话迁移到状态服务器后 -

我的一些存储自定义对象的会话开始出现“无法序列化”错误。我已经制作了这样的对象[Serializable]来解决这个问题。但现在我坚持使用上述 PRG 模式!

错误- 程序集“System.Web.Mvc,版本=3.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”中的类型“System.Web.Mvc.ViewDataDictionary”未标记为可序列化。

奇怪的是,我找不到一个可以分享我的场景的线程。任何人?

0 投票
1 回答
958 浏览

c# - 会话模式“ServerState”不能正确处理线程中的会话

我已经实现了一些为线程内的会话状态添加值的工作。我希望这些值在线程之外可用(显然)。

当 Session State 模式为“InProc”时,添加到 Session 的信息在 Session 之外可用,没有任何问题。

但是,当会话状态模式为“StateServer”时,行为是不同的。基本上,在 Thread 中设置的值有时会持久化有时不会持久化。这对我来说似乎是随机的。

这是重现问题的代码。

上面的代码适用于 SessionState mode="InProc",但随机:

有任何想法吗?

编辑:因此根据下面的评论,线程需要在请求(主线程)完成之前完成,否则添加到会话中的任何内容都会丢失。这是因为在主线程结束时,会话被序列化并发送到数据存储(进程外,或 SQL Server)。

0 投票
2 回答
835 浏览

asp.net - 在 ASP.NET 网络场中使用 Stateserver 会话

我创建了一个在线购物网站,该网站将部署在网络农场上。因此,我决定使用 ASP.NET 提供的 Stateserver 会话管理。现在,我有一个登录页面。用户成功登录后,我将他重定向到目录页面,他随后可以将书籍添加到他的购物车中。

据我了解,Session是以键​​值对的形式存储的。所以,如果我为特定用户创建一个会话(比如他的名字是“abc”),那么我会做这样的事情:

现在在他被重定向到另一个页面后,我如何检索这个会话?根据我的阅读,我必须写:

如何将此用户名作为参数发送到另一个页面。由于这是在网络场上,因此客户端可以针对每个请求连接到不同的服务器,并且可能有多个客户端同时登录。因此,如果我使用他们各自的用户名作为键为他们创建一个会话,当他们浏览不同的页面时,我如何检索他们的会话?

我认为我不了解会话 ID 的确切工作原理,所以如果有人可以帮助我,那就太好了。

0 投票
0 回答
222 浏览

c# - stateserver htmltable 会话序列化问题

我们将 asp.net html 表存储在会话中,它的工作文件带有 InProc 会话状态。

当我们使用状态服务器时,序列化从会话中获取表对象存在问题。

我尝试使用无法完成的 belo 代码...

看看 谢谢

0 投票
1 回答
1554 浏览

asp.net - ASP.net 状态服务器在负载平衡环境中丢失会话

我知道这是一个常见问题,但我还没有找到任何可以回答我的问题的东西。我在负载平衡的环境中随机丢失会话数据。我做了以下事情:

  • 将所有服务器设置为相同的状态服务器
  • 确保 web.config 中的所有 machineKeys 都相同
  • 确保 machine.config 中的所有 machineKeys 都相同
  • 确保 Web 服务文件的所有路径都相同(区分大小写)
  • 确保所有服务都具有相同的 ID

会话根本不会在多个 Web 服务器上持续存在。以下是 web.config 会话信息:

有任何想法吗?我不在他们之中。谢谢!

0 投票
1 回答
243 浏览

asp.net - 将程序集标记为可序列化?

我正在尝试使网站与状态服务器一起工作,但我遇到了需要将类标记为 [Serializable] 才能工作的问题。问题是我们有大量的课程。将我的所有课程标记为可序列化似乎是一个危险信号。

有什么想法吗?

0 投票
1 回答
16465 浏览

asp.net - 无法向会话状态服务器发出会话状态请求?

我正在尝试使用状态服务器会话。

我已将会话状态更改为以下内容:

从本地主机运行我的网站,一切正常。

但是当我发布我的网站并尝试在线运行时,我收到以下错误:

无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State 服务已启动并且客户端和服务器端口相同。如果服务器在远程机器上,请通过检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值来确保它接受远程请求。如果服务器在本地机器上,并且如果前面提到的注册表值不存在或设置为 0,则状态服务器连接字符串必须使用“localhost”或“127.0.0.1”作为服务器名称。

该网站托管在 Afrihost 服务器上,在重新搜索错误后我发现这可能是因为 ASP.NET 状态服务尚未启动。有没有办法检查 Afrihost 服务器是否正在运行此服务或远程启动它?

我也知道 IP 地址 127.0.0.1 用于本地主机,但是因为您在网络服务器上发布您的应用程序,所以它成为该机器的本地地址是正确的。