我该怎么做才能在负载均衡的共享主机服务器上使用会话
我的网站/应用程序在ASP.NET中。我使用传统的会话对象,当人们连接,所以他们有他们的喜好,等等。我该怎么做才能在负载均衡的共享主机服务器上使用会话
我的问题是会话经常丢失。我发现我的托管公司正在他们的服务器上使用负载均衡,因此我的网站上的一个请求可以在一台服务器上,另一个请求在另一台服务器上。
我试图将会话数据存储在SQL Server数据库中,但我很快发现我无法在我的共享服务器上创建所需的数据库,因为我的包中只有一个数据库。另外,不能保证脚本的其余部分能够运行。
我的问题:有没有其他方法可以解决这个问题?我是否应该为此购买另一个数据库?我可以使用另一种类型的会话吗?有什么我可以使用,而不是会话来跟踪我的用户,当他们连接到我的网站?
我真的打开任何类型的解决方案!非常感谢!
ASP.NET允许您指定希望如何处理会话管理。
正如你发现你可以使用SqlServer mode - 但这不必指向一个单独的数据库,它可以使用你已有的数据库。
还有用于管理Web场会话的单独的第三方包,但您可能不希望为您的设置花费(并且可能无法像这样安装包)。
我将尝试修改脚本以在同一数据库上运行所有内容。感谢您指出这一点。我希望它能起作用! – 2010-10-04 23:31:54
托管公司不让我在脚本中运行所有内容......脚本中有一些EXECUTE与作业等等。这是由Framework.NET创建的脚本,并且可以在我的机器上完美地工作。我问他们为什么我没有许可...... – 2010-10-05 00:27:51
这听起来像您的托管服务提供商可能的配置。尝试与他们联系并询问。他们可能需要在他们的负载平衡器上配置俗称“粘性会话”的东西。
这就是说,我认为负载均衡将用于像这样的共享主机客户端似乎很奇怪。我会仔细检查一下,以确保这是事实。
我已经仔细检查...我会看到如果有可能的粘性会话。 – 2010-10-04 23:32:29
您可以管理自己的会话。您需要生成一个随机sessionId并将其存储在cookie中。您可以使用数据库中的现有表。只需根据cookie中的值创建自己的类来读取和写入会话数据。
这是一个好主意。你有一个网站的教程,所以我可以看到最好的方式来做到这一点? – 2010-10-04 23:33:11
分析完这个问题后,看看是否可以自己管理所有事情,我发现这不是可能性。会话需要超时执行一些工作。一切都已经由SQL Server会话完成了。这将重新试图重新编程。我认为升级包装或更换公司可能是更好的选择。谢谢! – 2010-10-06 14:14:38
你在一个负载均衡的共享虚拟主机服务器?这听起来很奇怪......哪家托管公司? – 2010-10-04 22:30:45
是的,这很奇怪。您需要在LB端进行更改以促进共享会话。 – RPM1984 2010-10-04 22:32:57
该公司是1&1托管。从来没有与他们的问题,但之前这种情况是奇怪的...我问他们2次在他们的技术支持和答案是一样的... – 2010-10-04 23:31:16