Asp.net 要在具有负载平衡的共享托管服务器上使用会话,我可以做些什么

Asp.net 要在具有负载平衡的共享托管服务器上使用会话,我可以做些什么,asp.net,sql-server,session,load-balancing,Asp.net,Sql Server,Session,Load Balancing,我的网站/应用程序是ASP.NET。我在人们连接时使用传统的会话对象,以便他们有自己的偏好,等等 我的问题是,会话经常丢失。我发现我的托管公司在他们的服务器上使用负载平衡,所以我网站上的一个请求可以在一台服务器上,另一个在另一台服务器上 我试图将会话数据存储在SQL Server数据库中,但很快发现我无法在共享服务器上创建所需的数据库,因为我的包中只有一个数据库。此外,也不能保证脚本的其余部分能够运行 我的问题是:有没有其他办法来解决这个问题?我应该只为此购买另一个数据库吗?我是否可以使用其他类

我的网站/应用程序是ASP.NET。我在人们连接时使用传统的会话对象,以便他们有自己的偏好,等等

我的问题是,会话经常丢失。我发现我的托管公司在他们的服务器上使用负载平衡,所以我网站上的一个请求可以在一台服务器上,另一个在另一台服务器上

我试图将会话数据存储在SQL Server数据库中,但很快发现我无法在共享服务器上创建所需的数据库,因为我的包中只有一个数据库。此外,也不能保证脚本的其余部分能够运行

我的问题是:有没有其他办法来解决这个问题?我应该只为此购买另一个数据库吗?我是否可以使用其他类型的会话?当我的用户连接到我的网站上时,我是否可以使用其他方法来代替会话来跟踪他们


我真的愿意接受任何类型的解决方案!非常感谢

这听起来像是主机提供商的一种可能配置。试着联系他们,询问一下。他们可能需要在负载平衡器上配置通俗的“粘性会话”


这就是说,对于我来说,将负载平衡用于这样的共享主机客户端似乎很奇怪。我会仔细检查以确保情况确实如此。

您可以管理自己的会话。您需要生成一个随机sessionId并将其存储在cookie中。您可以使用数据库中的现有表。只需根据cookie中的值创建自己的类来读写会话数据。

ASP.NET允许您指定如何处理会话管理

正如您所发现的,您可以使用—但这不必指向一个单独的数据库,它可以使用您已经拥有的同一个数据库


也有单独的第三方软件包用于管理web场会话,但您可能不想为您的设置支付费用(并且可能无法安装这样的软件包)。

您位于负载平衡的共享托管服务器上?听起来很奇怪。。。是哪家托管公司?是的,这很奇怪。您需要在LB端进行更改以促进共享会话。该公司是1&1主机。以前从未遇到过问题,但这种情况很奇怪。。。我问了他们两次关于技术支持的问题,结果都是一样的……我将尝试修改我的脚本,以便在同一个数据库上运行所有内容。谢谢你指出这一点。我希望它能起作用!托管公司不让我运行脚本中的所有内容。。。脚本中有一些执行作业等。。这是由Framework.NET创建的脚本,在我的机器上可以完美地工作。。。我问他们为什么我没有得到许可…我已经仔细检查过了。。。我会看看是否有可能为这个棘手的会议做些什么。这是个好主意。你有没有一个网站上有关于这方面的教程,这样我就可以看到最好的方法了?在分析了这个问题,看看是否可以自己管理一切后,我发现这是不可能的。会话需要通过运行某个作业完成超时。SQL Server会话已经完成了所有操作。这将是重新发明轮子,试图再次编程。我认为升级我的软件包或更换公司可能是一个更好的选择。谢谢