问题标签 [httpapplicationstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
38 浏览

c# - 使用 C# 在 ASP.NET MVC 中查找站点的访问者数量

我正在尝试使用应用程序查找网站的访问者数量。

我的 Global.asax.cs 看起来像这样:

我的控制器我添加了以下代码:

但我收到一个错误“应用程序'在当前上下文中不存在”。

我是否缺少任何命名空间,或者应用程序在控制器级别不起作用。(我在 Golbal.asax.cs 中没有看到错误)

谢谢。

0 投票
1 回答
44 浏览

asp.net - HttpApplication类的Application属性可以用来计算当前活跃用户吗?

我在 ASP.NET Web 表单 Global.aspx 页面中使用以下代码来计算当前活动用户的数量。当我进行本地测试时,它确实有效。

理解是Application是Application级别的变量,可以在应用级别访问。因此,存储在一个会话中的值将在其他会话中可用。

但是在通过此链接https://docs.microsoft.com/en-us/dotnet/api/system.web.httpapplication?redirectedfrom=MSDN&view=netframework-4.8时,它表示成员变量可用于存储 per-请求数据

基于此声明和下面的完整段落,单个应用程序可以有多个 HttpApplication 实例,如果没有,应用程序将非常慢,因为一个 HttpApplication 实例在一个时间点只能处理一个请求

因此,每个 HttpApplication 都有自己的 Application 变量,并且计数将保存在 HttpApplication 级别。

HttpApplication 类的实例是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的。HttpApplication 类的一个实例用于在其生命周期内处理许多请求。但是,它一次只能处理一个请求。因此,成员变量可用于存储每个请求的数据。

应用程序引发的事件可由实现 IHttpModule 接口的自定义模块或由 Global.asax 文件中定义的事件处理程序代码处理。实现 IHttpModule 接口的自定义模块可以放在 App_Code 文件夹中,也可以放在 Bin 文件夹中的 DLL 中。

那么,为了得到准确的计数而不会有任何错误计算的机会,我应该使用静态变量吗?