2009-12-04 115 views
1

我有一个很奇怪的问题,我正在寻找任何建议。我有一个运行IIS 6的ASP.NET网站,大部分工作良好。然而,这些会议似乎被随机清除?所以如果我登录...点击左右,我会随机启动。有时会在30秒/ 4次点击之后。有时它是第一次点击,有时它甚至不会让我登录...有时它工作正常? (我知道这是被清除,因为我打印时,我注销了会议,他们是空的原因)随机IIS会话超时

我已经采取了看看IIS日志,但他们不告诉我很多。我怀疑这可能是一个时区问题?,我想知道是否有人知道这是否是一种可能性?

除此之外,我如何能找到更多关于什么是在会话发生任何提示?

到目前为止,我的问题的最奇怪的部分是它的随机性。这可能会成为IIS/ASP.NET专家的一个很好的线索。 (至少我希望如此!)

另一条线索:当我本地托管它,当我主持它从我的虚拟服务器GoDaddy的我只得到此问题的网站运行完美。 (这是运行IIS 6)

另一件事我本地主机上注意到

我的饼干看起来像这样:(从萤火虫) 曲奇ASP.NET_SessionId = vgt4ly45frvsm1qsfjsmdcbc;用户名=; demo = true

在托管服务器上它只是这样的: Cookie ASP.NET_SessionId = vgt4ly45frvsm1qsfjsmdcbc;

“用户名”是我的会话的名称...也许我已经上禁用饼干共同主办,这是导致会议无法正常工作?

感谢您的时间, 安德鲁

+0

我假定您的意思是说ASP.NET会话数据正在被随机清除? – 2009-12-04 21:09:10

+0

是的,我这样做.. .. asp.net会话对象 – Andrew 2009-12-05 00:24:31

+0

我现在终于明白你的问题意味着什么....我正在使用简单的会议,我认为....我现在正在查看ASP.NET会话....他们对我来说是新的,所以我正在学习他们如何工作 – Andrew 2009-12-05 18:40:30

回答

0

回答我的问题:

这个环节是非常有益的:

http://msdn.microsoft.com/en-us/library/ms972429.aspx

即这一部分:

服务器场的限制。当用户在Web服务器场中从服务器到服务器移动时,其会话状态不会跟随它们。 ASP会话状态是特定于计算机的。每个ASP服务器都提供自己的会话状态,除非用户返回到同一台服务器,否则会话状态将不可访问。虽然网络IP层路由解决方案可以解决这些问题,但通过确保客户端IP被路由到始发服务器,一些ISP选择为其客户端使用代理负载均衡解决方案。这些最臭名昭着的是美国在线。诸如AOL之类的解决方案阻止网络级别的请求到服务器的路由,因为请求者的IP地址不能保证是唯一的。

我将我的登录/注销会话切换为纯粹基于cookie的(我需要我的解决方案)......为了更安全的实现,我认为ASP.NET已在Profile中构建...以及...存储在你的数据库中的ASP.NET会话......当时我不喜欢研究/暗示。

Andrew

1

你的asp.net应用程序可以被回收。如果达到内存或cpu阈值,或者过了一段时间(在IIS6上默认使用15分钟不活动),可能会发生回收。

当应用程序被回收,在内存中一切都失去了。这可能是你失去会话数据的原因。

为了确保回收是罪魁祸首,您可以查看服务器上的性能计数器,或只是在Application_Start global.asax处理程序中记录一些内容。

对于IIS6上asp.net性能计数器的列表,检查https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0a6c9f07-a70c-4c3d-b93d-5dfef593c744.mspx?mfr=true

计数器为“应用程序重新启动”和“工作进程重新启动”你应该看的一个。

+0

如果我的应用程序正在回收,那么它不需要重新编译? (我不使用预编译的代码)当你说“看看性能计数器”时,你的意思是性能计数器对象吗? – Andrew 2009-12-04 21:30:21

+0

aspx页面在被调用时会被重新编译,但会自动完成(当页面编译时只有一点点热身)。 – 2009-12-04 21:38:05

+0

我在perf计数器上编辑了更多信息的答案。 – 2009-12-04 21:39:42

0

负载平衡群集中是否有多个Web服务器?当群集中的两台服务器之间的加密密钥不同时,我遇到了这个问题。只要负载平衡将您切换到另一台服务器,.Net就无法解密该Cookie,因此认为它很糟糕,并将您发送回登录页面。

Here's关于此问题的MSDN文章。

+0

陛下...你基本上意味着一个以上的web.config文件?......因为我只有一个,我手动设置 的 Andrew 2009-12-04 22:29:48

+0

谢谢虽然......这可能会让我走上正轨 – Andrew 2009-12-04 22:30:40