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将显示返回的值。。。

现在,这里的返回值、结果值或某些值将由所有或部分用户共享,这是真的吗?

asp.net多用户/客户端的静态问题

result是一个静态字段,并且确实在所有调用之间共享-这意味着在像asp.net这样的多线程环境中,运行时的结果可能非常不可靠;尽管如此,它是在字段初始化器中初始化的,并且似乎不会被更改,所以你可能会逃脱惩罚。如果它不能更改,请添加readonly以使其变得明显;如果可以更改,这将是一个巨大的问题。

someCalculation没有意义——C#中没有static局部变量,它也不会编译。

ASP.NET AJAX页面方法必须是static。我认为在处理static,尤其是static字段时,可以安全地说(双关语)从来没有安全的东西。