在哪些情况下需要注意ASP.NET中的并发问题(例如使用锁)?
在这个topic
例如,我很好奇单身人士(即使他们被认为是糟糕的做法-不要开始讨论这个问题)、静态函数(您需要在这里留心吗?),……?
发布于 2009-03-24 19:02:18
由于ASP.NET是一个web框架,并且主要是无状态的,所以很少有需要解决的并发问题。
我唯一需要处理的事情是管理应用程序缓存,但这很容易通过封装.NET缓存机制的缓存管理类型来完成。
发布于 2009-03-24 19:08:56
在我们的主要Web服务中使用模块和类是一个很大的问题,它给我们带来了很多麻烦。这是在我们真正知道我们在做什么之前,我们已经被修复了。
使用模块的最大问题是,在默认情况下,任何模块级变量对ASP辅助进程的每个实例都是可见的。我们传入多个数据集并对它们进行操作,然后将它们返回给客户端。因为我们使用的是模块,保存这些数据集的变量被同时发生的多个调用所破坏。
这在测试中并没有被捕捉到,在我们找到正确加载测试我们的web服务之前是很难复制的。我们每秒钟需要10-20次请求才能准确地再现它。
最后,我们只是将所有模块更改为类,然后使用这些类而不是对模块的调用,这解决了这个并发问题,因为每个实例化类在内存中都有自己的dataset副本。
https://stackoverflow.com/questions/678669
复制相似问题