我也觉得不能,你的静态变量是写到web.config中吗?如果是写在.cs中,应该不会起作用吧
解决方案 »
- 如何用javascript在页面中动态改变<object>的参数值,并使页面更新显示?
- foreach 无法使用 不含GetEnumerator的公共定义
- 网站空间问题
- C#操作IIS
- response.write
- 人人有分,永不落空(Ajax的问题)
- 关于用微博帐号登录,得到返回信息,怎么取登录邮箱?
- 请高手们帮忙看看下面这段绑定的代码,出错在那里???急~~~~~~~~~~~~~~~~~~~~~
- ASP.NET中的FORM表单产生的JS错误问题,如何解决?
- 一个关于存储过程与Dataset的问题!
- 设计Session与Cookie共同使用的问题?(一个php程序员学习asp.net的感想)
- 关于html标记、html控件、web控件的问题
写在哪里都会一样起到作用,因为它就是一个类里面的一个静态变量而已。但是好像写在Global.asax里面就可以,不过我不确定。
所谓类级变量,就是类级的,可以用类名直接访问,该类的所有对象公用该变量。所以vb.net中用shared标示,十分合理!所以静态变量与"服务器群集"没有任何关系,只要能访问含该静态变量的类,就可以访问该静态变量,且值是一样的。 与该类在哪里没有关系。
http://www.chinabs.net/aspnet/default.asp?infoid=99
一般来说,静态变量能够代替Application的作用(详情请参阅《Asp.Net高级编程》),但是该书没有说明群集的时候会是什么样的结果。因为一般的静态变量,不像Application做过一些处理,所以在物理地址都不同的时候,我就不知道静态变量的值还一不一样了。或者放到Global.asax里面可以?
不过应该把“而且始终保持第一次的赋值” 改为 “....最后一次的赋值....”
好像不全对哦,静态变量也可以在页面间信息传递啊,他的作用域是整个应用程序。
难道我理解有错?《ASP.Net高级编程》P531:静态变量。除了Application或者Cache在我们
应用程序中共享数据外,我们也可以使用ASP.NET中的面向对象工具:静态变量。我们可以声明静态变量,无论我们创建了多少个类实例,都只能创建一份该变量的副本。静态变量在整个应用程序都可以访问,而且在某些情况下比Application更为有效。有兴趣的朋友可以去找来看看,这本书应该多数人都看不过吧?
传递是肯定可以的,我已经试验过了。但是我没条件去做多个服务器群集的时候,他们值是否也能保证相同。不知道是否理解有错:Application应该是Web开发方式提供的方法,而静态变量应该是面向对象语言提供的解决方法。
我现在只是想知道这两者之间具体区别在于什么,而且想知道群集的时候是否可用。如果没有区别的话,其实Application的效率不如静态变量高。因为他是对象,还要Lock和UnLock。
应该只对一个session有作用吧?
杀鸡刀和宰牛刀没有高低之分,只说用了用对地方就行了.用不对地方反而会显得不伦不类.
我想MS让我们用静态和Application,目的再好区分不过了.
你觉得静态变量比Application更高级?更有效?那是在应用本类数据维持的时候.
而Application等会话状态的目的也很明显.用拿个.要酌情而定!
第一个用户赋值1
第二个用户赋值2
第一个用户在目标页面读取static
第二个用户在目标页面读取static两个用户读取的static为多少?
那好.排除多客户.不去说他.那再说一个客户指向的是群集服务器中的唯一一个服务进程,别的服务器进程不会来相互干扰吧?
那还是一个说法:如果说群集服务器会打乱static变量的值,那非群集服务器更应该是会被打乱数据的.当然,这是不可能的!静态变量的值当然只对一个客户端统一!
public static int tt;
private void Page_Load(object sender, System.EventArgs e)
{
Response.Write("tt="+tt.ToString());
tt ++;
}
是相互干扰的,我页测试过
但我测试了一下,不同的用户在访问用静态变量取得值的同一个页面时,是会相互干扰的。