如何在ASP.NET中实现浮动许可证?

时间:2010-11-26 17:58:06

标签: asp.net licensing

将ASP.NET Web应用程序限制为仅为给定数量的并发用户提供服务的好方法是什么?

一些要求是:

  • 应用程序需要登录(无需担心匿名用户)。
  • 支持多个服务器(场/负载平衡)。
  • 可以将活跃用户视为与活动会话相同(未签名或已过期)。
  • 如果已达到最大并发用户数,则必须拒绝其他登录。
  • 需要问责制(管理员应该能够看到活跃用户是谁)。
  • 每个Web请求的最小开销(特别是避免在每个请求上花费大量资金到数据库)。
  • 即使Web服务器挂起,断开网络连接或必须重新启动,也应保持并发用户的总数。
  • 其他服务器可用于托管服务(例如应用程序服务器)。

2 个答案:

答案 0 :(得分:2)

您可以使用全局变量(静态)并在Application_OnStart,Application_BeginRequest或Page_Load事件中连接逻辑。请查看此示例以获取更多示例:http://dotnetperls.com/global-variables-aspnet

答案 1 :(得分:0)

要限制您应该能够使用的并发用户数,

<system.web>
      <applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
</system.web>

http://blogs.msdn.com/b/rakkimk/archive/2009/07/08/iis7-improving-asp-net-performance-concurrent-requests-while-on-integrated-mode.aspx