问题标签 [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 投票
0 回答
1053 浏览

asp.net - 负载平衡环境的 ASP.NET MVC 会话替代方案

考虑到负载均衡器后面有多个 Web 服务器 (IIS) 的体系结构,我如何确定保存会话信息的最佳选项是什么?

有人告诉我,负载均衡器可以配置为使用sticky sessions,但这似乎不是一个选项,因为在受影响的系统上运行的其他应用程序建立了限制。调查这件事我通常会像这里State Server提到的那样结束。

现在我不明白的是为什么我应该使用单个(?)状态服务器来保存来自多个 Web 服务器系统的会话信息——这不会使整个负载平衡方法变得无用吗?还是对整体性能的实际影响如此微不足道,可以忽略不计?

我可以看到拥有这样的服务器是一个可行的解决方案,但我想知道这是否真的是一个好的解决方案。还有其他现实的选择吗?

一般来说,我宁愿只sticky sessions在负载均衡器上启用,因为考虑到托管应用程序的整体性能,我不明白为什么这会是一个问题,但我在这方面也不是很有经验。

0 投票
1 回答
792 浏览

asp.net - IIS 7 工作进程与共享应用程序池挂起。两个站点之一工作正常

我有两个网站共享一个 App Pool .Net V4.0 Integrated
一个站点是ASP.NET MVC 4,另一个是VB.NET Website

它们通过在以下内容中共享登录信息和服务器会话web.config

我还Application_Start使用以下命令在 global.asax 中设置应用程序名称:

位于www.example.com显示登录屏幕的主站点,在正确登录时创建对象会话并将用户重定向到subdomain.example.com
问题是 Worker 线程只是无限期地挂起,使每个线程最大化。当我昨晚 6:00 离开时,此设置正常工作,但当我今天早上 9:00 尝试登录时,它并没有停止工作。

我重新部署了这两个站点,回收了应用程序池,删除并创建了新的应用程序池,重新启动了 ASP.NET 状态服务。一切都在重新启动整个 IIS 服务,这在周日凌晨 3:00 之前并不是一个真正的选择......
此外,即使重新启动 IIS 服务器可以暂时解决问题,如果问题继续。

此外,除非我手动结束该过程,否则服务器永远不会使连接超时,并且事件日志中不会产生任何错误或警告。

0 投票
1 回答
1296 浏览

c# - 在负载平衡服务器上使用应用程序范围的变量

我有一个托管在两个负载平衡服务器中的站点。我有一组变量,它们作为查找存储在静态变量中,以执行频繁和快速的查询。静态变量中的值是树形结构的数据,不想每次都查询到DB,绑定列表变量之间的关系。静态变量结构如下所示。

有时静态变量的内容可能会更新(当管理员修改一些值时),所以我用更新的值更新静态变量,以便用户可以立即获得更改。

它在单个服务器上运行良好,但是当我将其发布到两台或多台服务器时,除了登录的一个管理员之外的其他服务器不会更新变量(因为该应用程序服务器中的静态变量只会更新)。

保持我的静态变量在多个服务器中同步的最佳方法是什么?或者是否有任何其他方式来管理我的情况(事件驱动或其他方式来触发/通知其他服务器并刷新其中的变量)?

我有一个会话状态服务器,它管理这些负载平衡服务器之间的会话值。有没有办法将 ILookup 变量的单个实例存储在会话状态服务器中并在所有用户之间共享?

0 投票
1 回答
957 浏览

asp.net - Asp.net 状态服务器无法序列化会话状态

我正在使用 StateServer 会话,使所有对象 [Serializable] ,仍然出现错误。问题是什么?

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

这是代码...在 Response.Redirect("common/TicklerDisplay

0 投票
1 回答
2102 浏览

asp.net - 如何在 Azure 中启动 ASP.Net 状态服务

在 azure 中部署我的应用程序时,使用会话变量时出现此错误

在此处输入图像描述

我知道这个错误是由于ASP.Net state server mode. 我在本地 PC 上启动了该服务,但如何在Azure环境中启动该服务?

0 投票
1 回答
5063 浏览

asp.net - ASP.Net Session.Timeout - StateServer 和 Programmatic Session.Timeout 是否足够好?

环顾四周,看起来在使用 InProc 模型时更改 asp.net 会话时间需要两个更改...

  1. web.config - 应用程序池空闲
  2. 超时 - 似乎你应该设置这个 >= Session.Timeout

我是通过阅读http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/收集到的。

所以,如果我没有在应用程序池上更改超时的奢侈,我想知道我是否更改为使用 StateServer,然后按照上面文章中的描述以编程方式设置 Session.Timeout,我是否需要担心 web.timeout 是什么? config @timeout 和应用程序池空闲设置设置为?我的两个动作会解决所有问题吗?

如果它确实解决了它,我想下一个问题是是否有人知道 InProc 与 StateServer 的性能比较。

提前致谢。

0 投票
1 回答
98 浏览

c# - 会话不坚持很长时间

我有一个 ASP 站点,该站点的会话将在 30 分钟或更短的时间内到期。会话模式是“InProc”,所以我将其更改为“StateServer”,并启动了“ASP.NET 状态服务”,但我仍然遇到类似的问题。我还将应用程序池的“空闲超时”更改为“0”。

知道为什么在让应用程序闲置约 30 分钟或更短时间后会话会过期或不存在吗?

谢谢。桑吉夫

0 投票
0 回答
197 浏览

asp.net - 设置会话超时的最佳方法

我们创建了一个 ASP.NET 网站,为我们的客户提供基于票证的支持。客户可以向我们发送查询,他们可以看到回复,如果有的话(我们确实在客户端提供应用程序来发送查询和回复)。我在我们的 ASP 网站中使用 ASP.net 状态服务器会话。应用程序在 45 分钟内检查数据库中的新回复。45 分钟后,不再使用这些会话。如果没有回复,则在第二天检查回复。如果客户提出新问题,我们会为其创建新会话,并且不再使用旧会话。为了第二天检查,我们直接从我们的数据库中获取它并显示所有未看到的回复。在我询问有关会话丢失的问题之前,我使用 asp.net StateServer 解决了它。

现在我已将会话超时设置为 1440,即 24 小时。但是我们需要检查 45 分钟的回复,以便我们可以减少会话超时。但为了更安全,我们将其设置为 24 小时。

  1. 如果我将其设置为较大的值,是否有任何负面影响?
  2. 它会影响我的 Web 服务器性能吗?
  3. 在我的情况下,设置会话超时的最佳方法是什么。
0 投票
0 回答
100 浏览

c# - 将 SessionSate 从 InProc 移动到 StateServer

我目前正在开发一个将其会话状态存储在进程中的应用程序。由于我们发布应用程序/应用程序池回收时应用程序的编写方式,会话数据丢失并且用户注销。

这不是很好,原因有以下三个:

  1. 升级软件将用户注销
  2. 修复错误很困难,因为当我们重建解决方案时,开发人员必须导航回他/她正在处理的页面,这需要时间。
  3. 我们正在寻求转向负载平衡的基础架构

我决定将 Session State 移动到 StateServer 以防止 Session 丢失。

使用 StateServer 的先决条件是存储在 Session 中的所有对象都必须是可序列化的,因此必须使用 System.SerializableAttribute 显式修饰。

所以我发现自己手动浏览了我们的 SessionData 对象(非常大)的整个对象图,这需要一些时间。

我已经停在这一点上,因为这似乎是一项非常错误的任务。

我还发现我们的根 SessionData 对象可以很好地存储在会话状态中,即使没有使用 Serializable 属性修饰的属性,只要它们为空。因此,在抛出异常之前,我不会经历所有我不知道的事情。

所以我的问题是:

  1. 我是否做出了将会话状态移出进程的正确决定(我们可能正在转向负载平衡模型,所以我认为这将是必要的)
  2. 我需要手动遍历整个对象图并显式添加 System.SerializableAttribute 是否正确。

提前致谢。

0 投票
1 回答
417 浏览

asp.net - 如果存在任何 TextBox 控件,则 DIV InnerHTML 不会写入 HTMLTextWriter

我正在编写以下代码来获取 div 元素的 html:

但它会抛出错误:

我正在使用带有表单标签的母版页,并且在 aspx 页面内我有一个包含 div 的用户控件。div 填充有服务器代码。带有表格、标签控件和文本框。我尝试在 div 之前的用户控件中添加表单标签