asp.net网站,app_code里写了一个类.cs里面有个静态函数 public static fun(int a)
函数里声明变量int b,b通过a的值决定。网站发布后,偶然会出现问题。
当调用这个函数时,偶尔在函数执行过程中b的值错误,而且前半段计算b是正确的,到函数的后半截就有可能出错。几个月里出过两三次这个现象。大家谁知道可能出现这个现象的原因。
函数里声明变量int b,b通过a的值决定。网站发布后,偶然会出现问题。
当调用这个函数时,偶尔在函数执行过程中b的值错误,而且前半段计算b是正确的,到函数的后半截就有可能出错。几个月里出过两三次这个现象。大家谁知道可能出现这个现象的原因。
解决方案 »
- 这段代码是什么意思。
- asp.net 存储过程 执行不了
- WCF REST 服务向客户端推送消息,求见解。
- 前台页面显示的问题
- ext js 点击查询怎么重新绑定数据?(来者有分!!)
- DropDownList数据填充问题`
- 时间加减?
- 请各位高手学哥学姐们帮帮忙呀!尝试创建Web项目或打开位于URL"http://localhost/WebAplication1"的Web项目时,Web服务器报告了以下错误。“http/1.1500 Server Error”。
- 我是新手,关于.NET开发的两个问题(很简单,大家都来看看)
- 怎样才能在ASP.net的Server端,打开一个窗体?
- 关于Session的时效问题
- 建站的那些事儿
-------------------------------为什么要用静态函数呢
...
代码很长,先是计算出来b然后后面就不在给b赋值,全是用b的值来计算结果体现出来就是前半段计算时b没错,到后半段就有可能出错。似乎不是代码的错误。偶然 小概率出现 不可人为重现几个月就出现了一两次
{
public a()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public static string GetHTML(int b)
{
int c = b*10;
string str ="";
if(c>15)
{
str +="1";
}
if(c<15)
{
str +="2";
}
return str;}页面调用 string str = a.b(1);结果 str = “12”;大概就是这样的代码结构,错误就是这样的现象逻辑应该没问题,平时操作一切正常。并发测过,函数内加System.Threading.Thread.Sleep(10000);
证明并发调用互不干扰。
没做过压力测试,不知道当服务器访问量比较大时会不会内存里的数据出错(现我猜有可能是这个原因,但不知道怎么测试证明)
服务器是win2008 IIS
{
static int total;
static object synchLock = new object(); public static int GetTotal(int num)
{
lock(synchLock)
{
total = 0; for (int i = 0; i < num; i++)
{
total += i;
Thread.Sleep(100);
}
return total;
}
}
}