当A用户搜索: "广州"的同时, B用户搜索: "深圳", 结果是A用户的搜索也变成了深圳
解决方案 »
- ASP.NET数字水印
- asp.net state service无法自动启动?
- 100分求教一个关于如何设置路由器和iis的问题
- 数据库操作中的效率问题!!!!
- 请问在一个类文件里面如果才能像server.UrlEncode一样编码,我在类文件用总是提示找不到命名空间
- 在ASP.NET中怎么获得confirm()的返回值
- 求:算距生日还有多少天的最优算法?
- 再请教各位大师,双字节域传输后是乱码,即上一页传在中文域给下一页时,变为乱码,下面有代码,各位大师再帮个忙。
- 用oracleclient连接oracle92的问题,请大家帮忙
- asp.net mvc 返回一个纯html页面
- 性能问题3: 关于web服务器集群
- FormView分页后怎样导入excel?
如果不用静态, 如何让
// 分页参数
public static int myPage;
public static string mySearchKeyword;
public static string mySearchList; 在整个类中, 都可以调用呢? 因为还有其他的函数, 需要使用该参数.
public static int myPage;
public static string mySearchKeyword;
public static string mySearchList; 表示这几个变量是线程持有的
而不是所有线程共有的这样每个线程都会拥有独有的,静态的myPage,mySearchKeyword和mySearchList
我大概分析了一下
可能是下面原因造成的:多个用户请求的是同一个page实例,所以即便声明ThreadStatic也会认为是这个page实例的静态属性
1.page对象相同-->2.所有赋值均在同一个page对象进行-->3.page对象占用的线程不变-->4.page对象改变自己线程内的static属性
解决方法:采用缓存技术缓存用户请求,例如:
public static Dictionary<string, object[]> cache;
protected void Page_Load(object sender, EventArgs e)
{
string cacheKey = string.Format("user:{0}",userid);
if (!cache.ContainsKey(cacheKey))
{
cache.Add(cacheKey,"用户搜索关键字");
}
}
且记你的公共变量,不能赋session等全局值!!!!