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

.net - 在 ASP.NET 状态服务器上实现 DotNetOpenId 的任何示例?

我们在当前使用横向扩展的网络农场上实现了 dotopenId。我们想用 ASP.NET State Server 替换 ScaleOut,但我想知道是否有需要为 AssociationStore 和 ProviderStore 构建的接口示例。

0 投票
1 回答
168 浏览

load-balancing - 使用与 stateserver 相同的服务器的相同 asp.net 应用程序的两个版本 - 不好?

我们的网络应用程序有 2 个生产网络服务器,负载平衡以处理大量流量。

我们也有类似的测试设置。

在比较应用程序版本(测试版和实时版)的 Web.Config 时,我发现了一些令人惊讶的事情:两个池的 stateConnectionString 值相同。如果我理解正确,这意味着他们使用的是同一个状态服务器:

这是一个问题吗?(状态服务器如何不混淆两个池)?

我只是在测试服务器上遇到了奇怪的——有时是减速/错误,这就是为什么我首先要看这个的原因,但是产品池运行良好......

0 投票
2 回答
1519 浏览

asp.net - Why am I losing sessions when running in StateServer mode?

I have checked the servers (Win Server 2003) application event logs for the following problem http://support.microsoft.com/kb/308097 which doesn't show up. It just appears that sessions drop randomly for random users

It's a single server setup, no web farms and no load balancing

Even though the issue I point to above doesn't occur in the logs, is it worth increasing the stateNetworkTimeout attribute anyway? The configuration at the moment is simply

#xA;

UPDATES:

Using FormsAuth and the Timeout is set to 60

IIS6 Settings

  1. Recycle worker processes (in minutes) = 120
  2. Recycle worker processes (number of requests) = 35000
  3. Recycle worker processes at the following times = Unchecked
  4. Maximum virtual memory = Unchecked
  5. Maximum used memory = Unchecked
  6. Shutdown worker processes after being idle = 90
  7. Limit the kernel request queue = 1500
  8. Everthing else = Unchecked
0 投票
6 回答
39307 浏览

asp.net - 使用 ASP.NET 会话状态服务器(而不是 InProc)的优缺点?

在我开始使用会话状态服务器以使我的应用程序中的会话状态与 InProc 状态相比更加健壮之前,我想找到一个优缺点列表进行评估。

更新 1:还有关于生存的应用程序池回收吗?

更新 2:会话的寿命和结束时间如何?

0 投票
1 回答
279 浏览

asp.net - StateServer 不允许 WCF 返回的类型存储在会话变量中

我正在从 1.1 Web 应用程序中调用我们的内部 WCF 服务之一,并返回一个类型,然后将其存储在会话中。

返回的类型包含页面的数据,当页面呈现时,我收到以下消息:

“无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用非可序列化对象或 MarshalByRef 对象。

我不明白为什么我不能将从服务返回的类型存储到会话变量中。

如果我将配置更改为“InProc”,那么它可以工作。

感谢您的反馈。

0 投票
2 回答
248 浏览

asp.net - webfarm场景中的状态服务器?

这是关于状态服务器的一个相当基本的问题,但假设负载均衡器后面有 2 台服务器。如何配置会话状态服务器?

所以,我有 machine1 和 machine2。我假设我只需要在一台机器上安装状态服务器,然后使用内部 IP 来引用那台机器。它是否正确?相反,我不会在两台机器上安装状态服务器。

0 投票
3 回答
18069 浏览

asp.net - 如何在 ASP.NET 中跨多个 Web 应用程序维护相同的会话 ID

我在 IIS 上的不同虚拟目录上设置了两个相同的应用程序(我已经做了一些解决方法以确保它们都具有相同的应用程序名称)。有没有办法在两个 asp.net Web 应用程序之间共享会话 ID?

由于我将会话存储在 StateServer 中,因此它们都应该获得相同的会话数据,但是,每次我从应用程序 a 转到应用程序 b 时,都会创建不同的会话 ID。这不会在负载平衡场景中发生吗?当我去 www.test.com 时,它会将该请求重定向到服务器 a,然后如果我再次点击它,它将转到服务器 b,但由于它是一个不同的 Web 应用程序,它会创建一个新的会话 ID ?

0 投票
4 回答
23718 浏览

c# - 为什么我不能使用 StateServer 在 2 个 Web 应用程序之间共享会话状态?我错过了什么?

我无法让 2 个相同的 ASP.NET MVC 应用程序使用 Session StateServer 共享相同的 Session。我尝试这样做的原因是我们最终将在需要共享相同状态的 3 个 Web 服务器上部署此应用程序。我们需要使用 StateServer,因为我们试图将 db 用于非数据相关存储的最小化。

设置:

我已经将相同的代码库部署到http://localhost/ App1http://localhost/ App2

两者都有相同的 Web.Config 文件,内容如下:

我用这个工具来生成这些机器密钥

考试:

我将以下内容放入我的一个控制器中以测试它是否正常工作:

考虑到这一点:

结果:

对于这两种部署,当页面首次加载时,我可以看到模式是 StateServer 并且时间戳设置为与实时值相同的时间。但是,如果这有效,则只有第一页应该与实时值。第二个页面加载应从 StateServer 读取,因为该时间戳值不再为空,并显示该时间值。但相反,它再次显示实时值。

当我刷新页面时,时间戳保持不变,实时值始终在更新。这表明时间戳正在保存到 Session,但两个部署的时间戳值在应该相同时总是不同的,因此这表明 Session 没有被共享。

有人可以指出我做错了什么,或者我需要做些什么才能让它工作吗?谢谢

0 投票
0 回答
1340 浏览

asp.net - StateServer (aspnet_state.exe) 是否应该在会话结束时释放 RAM?

我注意到 StateServer 服务只会增加内存使用量。

当用户注销时,会话以以下方式结束:

我假设 StateServer 然后会释放一些内存,但它实际上会消耗更多。

web.config我将超时设置为 20 分钟。会话在 20 分钟没有活动后会超时,但 StateServer 不会在它们这样做时释放任何内存。

这是正常行为吗?

0 投票
3 回答
14232 浏览

asp.net - 突然收到“无法向会话状态服务器发出会话状态请求”

设置:2 个 Web 服务器和一个单独的状态服务器

我有两个负载平衡配置的生产 Web 服务器。他们托管的 ASP.NET Web 应用程序使用其 web.configs 中的这一行共享状态(如网络农场):

9.9.9.9 是运行 asp.net 会话状态服务的机器的 IP(好吧,它真的不是 9.9.9.9,为了保护无辜而更改)。它是第三台机器(实际上是数据库服务器。

它工作得很好,直到...

错误:网站宕机!

突然网站宕机了,只显示一个通用的 asp.net 错误页面(“关闭自定义错误以查看此错误”或其他任何内容)。

该应用程序的日志记录了实际的错误消息:

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

因此,Web 应用程序似乎无法联系状态服务器(9.9.9.9)。

我“尝试转动如果 auf 然后 onnegen” - 重新启动状态服务器解决了问题。

为什么?

我真的很想知道发生了什么以及为什么这样我可以防止它再次发生。

到目前为止,我只有两个理论:

  1. 大约在那个时候,在状态服务器上应用了对 .net 框架 4 的 Windows 更新。那么也许更新对 asp.net 状态服务有影响?Windows 事件查看器显示 .net 4 已经记录了一个警告:

    对 IIS 元数据库的更新被中止,因为 IIS 未安装或在此计算机上被禁用。要将 ASP.NET 配置为在 IIS 中运行,请安装或启用 IIS 并使用 aspnet_regiis.exe /i 重新注册 ASP.NET。

  2. prod网站和状态服务器之间的某种临时网络问题?不过,它们确实在同一个物理机架中彼此相邻。

  3. ???任何其他想法,有人吗?

任何人以前见过这个,或者能够纠正我的任何事情?