【问题标题】:ASP .NET Mixes data from different thread of users [closed]ASP .NET 混合来自不同用户线程的数据[关闭]
【发布时间】:2013-05-28 13:25:00
【问题描述】:

我最近一直在研究一个奇怪的问题,正在寻找一些答案

在 Asp.Net 4.0 Web 应用程序中,我有一个接受对象作为输入参数的方法,现在我正在使用 10 个用户在下面的代码上运行负载测试,虽然我这样做了,但我得到了 if 条件满足少数情况不应该如此。这意味着我来自不同用户的数据混合在一起会导致不良结果。这是在我的本地机器和托管服务器中 - 两者都是虚拟机。

Private SampleClass b 
Public void DoWork(int a,SampleClass obj)
{
try
{
b=obj;
if(b.id  !=obj.id)
{
 throw new Exception("Error");
}
}
catch(Exception ex)
{
}
}

请在这里帮助我...

【问题讨论】:

  • 您的问题到底是什么? ID是什么类型的?它是如何获得第一个值的?
  • 由于缺乏细节无法回答。最佳猜测:您在某处有一些 static 数据。
  • 我在任何地方都没有静态数据,我已经检查过了,id 的数据类型是整数...我在 aspx 中分配它并简单地发送它
  • 对您的帖子进行编辑并添加 SampleClass。像这样不可读。还要添加一个适当的问题
  • 根据所提供的信息很难判断。我最好的猜测是,不知何故,您正在使用包含上述方法的类的同一实例,并且您遇到了竞争条件。

标签: c# asp.net multithreading virtual-machine


【解决方案1】:

我刚刚想通了...... Do work 方法被一个静态实例调用,然后在内部 Do work 使用 Nhibernate 来保存数据...... Nhibernate 如何在错误/某些场景中混合这些数据

现在用新的实例对象替换静态,似乎解决了这个问题。

谢谢大家

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多