asp.net多用户/客户端的静态问题
本文关键字:静态 问题 客户端 net 多用户 asp | 更新日期: 2023-09-27 18:20:15
在asp.net中使用static是否安全?
情况是这样的:
代码后面的计数器在每个forLoop 上向用户报告
所以:
<div id="report"></div>
将通过jquery ajax设置,这是因为如果我将添加runat="Server"
直到所有迭代都将发生,它才会被显示。
因此,使用jquery触发[Webmethod]
是我在运行时更新div内容的唯一方法
所以问题是10个用户是否会同时触发网络方法
static int result=someStaticMethodRandomOutput();
[webmethod]
static void StatMet(object userInput){
return result + intValue() * Convert.ToInt32(userInput);
}
static int intValue(){
static int someCalculation=someOtherStaticValFromOtherMethodToReturn;
return someClaculation;
}
在客户端,jQueryAjax将显示返回的值。。。
现在,这里的返回值、结果值或某些值将由所有或部分用户共享,这是真的吗?
result
是一个静态字段,并且确实在所有调用之间共享-这意味着在像asp.net这样的多线程环境中,运行时的结果可能非常不可靠;尽管如此,它是在字段初始化器中初始化的,并且似乎不会被更改,所以你可能会逃脱惩罚。如果它不能更改,请添加readonly
以使其变得明显;如果可以更改,这将是一个巨大的问题。
someCalculation
没有意义——C#中没有static
局部变量,它也不会编译。
ASP.NET AJAX页面方法必须是static
。我认为在处理static
,尤其是static
字段时,可以安全地说(双关语)从来没有安全的东西。