ASP.NET的Application简介1
ASP.NET中的Application
1、 Application是用于保存所有用户共有的信息。在ASP时代,如果要保存的数据在应用程序生存期内不会或者很少改变,那么使用Application是理想的选择。但是在ASP。NET开发环境中,程序员通常把类似的配置数据放在Web.config中。如果要使用Application,要注意所有的写操作度都要在Global.asax文件中的Application_OnStart事件中完成。
//下面的代码是在Global.asax文件中设置
Application.Lock();
Application[“UserId”]=”Hello kitty”;
Application.UnLock();
// 以下是在页面中调用Application
String UserId=Application[“UserId”].ToString();
2、Application的特性:
1、信息量大小为任意大小
2、应用于整个应用程序/所有用户
3、保存在服务器端
4、作用域和保存时间是在整个应用程序的生命期
3、如果在应用程序中使用Application对象,一个需要考虑的问题就是任何写操作都要在Global文件中的Application_OnStart事件中完成。尽管使用了Application.Lock()和Application.UnLock()方法来避免同步操作,但是由于它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈,因此最好不要在此对象中保存大的数据集合。
4、下面使用Application实现在线用户统计,记录同时现在人数和网站总访问人数。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.IO;
using System.Web.SessionState;
/// <summary>
///Global 的摘要说明
/// </summary>
public class Global : System.Web.HttpApplication
{
private System.ComponentModel.IContainer component = null;//必要的设计器变量
private FileStream fileStream;
private StreamReader reader; //读字符流
private StreamWriter writer;//写字符流 /// <summary>
/// 网站程序启动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
Application["currentUser"] = ;//初始化在线用户
//加载文件流,如果文件不存在则创建文件
fileStream = new FileStream(Server.MapPath("~/count.txt"), FileMode.OpenOrCreate);
reader = new StreamReader(fileStream);//使用流读取文件
Application["AllUser"] = Convert.ToInt32(reader.ReadLine());//将文件中的记录存入总访问数中
reader.Close();//关闭流
} /// <summary>
/// 会话开始 ,当用户访问网站时,在线用户+1,总访问数+1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();//锁定,防止同时录入
Application["currentUser"] = (int)Application["currentUser"] + ;
Application["AllUser"] = (int)Application["AllUser"] + ;
fileStream = new FileStream(Server.MapPath("~/count.txt"), FileMode.OpenOrCreate, FileAccess.Write);
//写入流
writer = new StreamWriter(fileStream);
//把总访问数再次写入count.txt文件中
writer.WriteLine(Application["AllUser"].ToString());
writer.Close();//关闭写入流
Application.UnLock();//解开锁定
}
/// <summary>
/// 会话结束
/// </summary>
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["currentUser"] = (int)Application["currentUser"] - ;
Application.UnLock();
}
}
ASP.NET的Application简介1的更多相关文章
- You may receive an exception when you browse a .NET Framework 2.0 ASP.NET Web application
SYMPTOMS When you browse a Microsoft .NET Framework 2.0 ASP.NET Web application, you may receive one ...
- ASP.NET中application对象
ASP.NET中application对象的使用. Application对象的应用 1.使用Application对象保存信息 (1).使用Application对象保存信息 Applicat ...
- Your First ASP.NET 5 Application on a Mac
Your First ASP.NET 5 Application on a Mac By Daniel Roth, Steve Smith, Rick Anderson ASP.NET 5 is cr ...
- ASP.NET 使用application和session对象写的简单聊天室程序
ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...
- [转]剖析ASP.Net MVC Application
http://www.cnblogs.com/errorif/archive/2009/02/13/1389927.html 为了完全了解Asp.net MVC是怎样工作的,我将从零开始创建一个MVC ...
- asp.net中application,cookies,stateview,session的使用
Cookie Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn ...
- First ASP.NET Core Application on a Mac Using Visual Studio Code
一直希望可以在mac上直接编写webapp (用C#)现在终于伴随着 core 世界美好了,不需要用pd windows了 nice. Visual studio code 更新1.1版本了 怀着激动 ...
- 源码学习之ASP.NET MVC Application Using Entity Framework
源码学习的重要性,再一次让人信服. ASP.NET MVC Application Using Entity Framework Code First 做MVC已经有段时间了,但看了一些CodePle ...
- ASP.NET之Application、Session和Cookie的差别
在Asp.net中Application.Session和Cookie都能够保存信息,那么它们有什么不同呢? 一.首先Application是在server端建立一个状态变量,存储于server的全局 ...
随机推荐
- 《第一行代码》学习笔记16-碎片Fragment(1)
1.碎片( Fragment):一种可以嵌入在活动当中的UI片段,能让程序更加合理和充分地利用大屏幕的空间,在平板上的应用广泛. 2.碎片同样包括布局,有自己的生命周期,甚至可理解成一个迷你型的活动. ...
- 去空格 whitespaceAndNewlineCharacterSet
http://blog.csdn.net/worn_nest/article/details/10155495
- gitweb随记
1.安装gitweb,命令安装即可 apt-get install gitweb 2.clone cgi $ git clone git://git.kernel.org/pub/scm/git/gi ...
- Identify Smith Numbers
Link: https://www.hackerrank.com/challenges/identify-smith-numbers def sum_digits(n): return sum(int ...
- openFileDialog与saveFileDialog的使用
private void btnOpen_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogR ...
- hdu 1245 Saving James Bond
http://acm.hdu.edu.cn/showproblem.php?pid=1245 #include <cstdio> #include <cstring> #inc ...
- 一键安装IIS的点点滴滴——For所有Microsoft的操作系统(上)
原文www.cnblogs.com/cdts_change/archive/2010/03/04/1677338.html 临近公司的软件要完工了,最近几天一直在泉哥的带领下为我们公司的产品做IIS一 ...
- JQuery轻量级网页编辑器 选中即可编辑
目前流行的可视化网页编辑器非常多,像ckeditor.kindeditor.tinyeditor等,虽然功能都非常强大,但是体积都比 较庞大,使用起来也不是很方便.今天我们分享一款基于jQuery的轻 ...
- SimHash算法
短文本合并重复(去重)的简单有效做法 - 旁观者 - 博客园 短文本合并重复(去重)的简单有效做法 SimHash算法 - ACdreamer - 博客频道 - CSDN.NET SimHash算法
- HTTP请求&&响应
在视频上截的图....俗话说好记性不如烂笔头,所以就保留下来 请求: 响应: 状态码: 请求头和响应头的解释: