Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制对Asp.Net应用程序的并发访问_Asp.net_Sql_Sql Server - Fatal编程技术网

限制对Asp.Net应用程序的并发访问

限制对Asp.Net应用程序的并发访问,asp.net,sql,sql-server,Asp.net,Sql,Sql Server,我想限制对internet或intranet web应用程序的并发访问 我希望能够允许一定数量的并发访问,比如说,我希望使用相同的用户名最多允许20次并发访问 我可以想象在登录时创建一个会话,并通过增加计数器将其保存到DB中,但如果用户注销,则无法从DB中删除会话并减少计数器,因为用户可能只是关闭浏览器 伙计们,你们认为最好的方法是什么 谢谢,你说得对,你不知道用户是刚刚关闭了浏览器还是拔掉了电源线 创建一个计时器,每30秒进行一次Ajax调用,并记录它。如果某个用户60秒不在该日志中,请将其扔

我想限制对internet或intranet web应用程序的并发访问

我希望能够允许一定数量的并发访问,比如说,我希望使用相同的用户名最多允许20次并发访问

我可以想象在登录时创建一个会话,并通过增加计数器将其保存到DB中,但如果用户注销,则无法从DB中删除会话并减少计数器,因为用户可能只是关闭浏览器

伙计们,你们认为最好的方法是什么


谢谢,

你说得对,你不知道用户是刚刚关闭了浏览器还是拔掉了电源线

创建一个计时器,每30秒进行一次Ajax调用,并记录它。如果某个用户60秒不在该日志中,请将其扔到服务器上。
但这并不能阻止一个人整夜打开浏览器,占用一个插槽

这里提到了“最后一个活动”字段。另一方面,当有人需要打开浏览器查看某个内容的时间超过超时限制(分钟)时,这会造成混乱

如果有人因用户/超时限制而被抛出;我认为如果有一个插槽再次打开,让他们完全透明地自动登录会很好

我相信这个解决方案会产生其他问题,不用想太多

编辑掉:

正如我所评论的——20个用户——你真的解决了正确的问题吗?

你是对的,你不知道用户是刚刚关闭了浏览器还是拔掉了电源线

创建一个计时器,每30秒进行一次Ajax调用,并记录它。如果某个用户60秒不在该日志中,请将其扔到服务器上。
但这并不能阻止一个人整夜打开浏览器,占用一个插槽

这里提到了“最后一个活动”字段。另一方面,当有人需要打开浏览器查看某个内容的时间超过超时限制(分钟)时,这会造成混乱

如果有人因用户/超时限制而被抛出;我认为如果有一个插槽再次打开,让他们完全透明地自动登录会很好

我相信这个解决方案会产生其他问题,不用想太多

编辑掉:

正如我所评论的-20个用户-您真的解决了正确的问题吗?

您可能希望在会话中有一个“lastactive”字段。当有人试图登录或以其他方式创建会话时,您可以查询在一段时间内(例如15分钟)处于活动状态的所有会话,并使用结果计数来告诉您有多少并发会话处于活动状态。

您可能希望在会话上有一个“lastactive”字段。当有人试图登录或以其他方式创建会话时,您可以查询在一段时间内(例如15分钟)处于活动状态的所有会话,并使用结果计数告诉您有多少并发会话处于活动状态。

您可以在注销时调用递减函数。我建议您在这个项目中使用sqlstateserver,但是您真的解决了正确的问题吗?只有20个用户听起来像是受运行后端的某些业务服务的限制,而不是由于您的服务器。您的解决方案是否真的一直需要此业务服务器,或者您是否可以将限制固定到需要它的位置?您可以在注销时调用递减函数。我建议您在这个项目中使用sqlstateserver,但是您真的解决了正确的问题吗?只有20个用户听起来像是受运行后端的某些业务服务的限制,而不是由于您的服务器。您的解决方案是否真的一直都需要此业务服务器,或者您是否可以将其限制在需要的位置?我拥有的web应用程序可以同时为数千名用户提供服务。因此,这对小公司来说有点贵,所以,我想按访问量定价,以帮助小公司。因此,这个数字并不是固定的,不同的客户会有所不同。请注意,大多数客户都有不同的URL来满足他们的需要。我的web应用程序可以同时为数千名用户提供服务。因此,这对小公司来说有点贵,所以,我想按访问量定价,以帮助小公司。因此,这个数字并不是固定的,不同的客户会有所不同。请注意,大多数客户都有不同的URL来满足他们的需要