MVC4动作是否安全?

时间:2014-03-20 04:46:52

标签: asp.net asp.net-mvc asp.net-mvc-4

我使用的是asp.net mvc4,但我对Action有疑问,Action是否安全?我的意思是当2个请求到来时,可能1个请求是否处理但是没有完成,第二个请求启动句柄?

或者如果它是安全的线程,请等待完成一个请求和另一个请求?

感谢。

  

UPDATE1:

     

看起来它不是线程安全的。我对Controller有一个动作。在动作5方法中已执行。 (1,2,3,4,5)。共有3个请求(A,B,C)。

     

有我的日志显示,这些执行顺序:

     
    

A-1 B-1 C-1 A-2 A-3 B-2 B-3 B-4 B-5 C-4 C-5 A-2 A-3 A-4 A-5

  
     

因为我需要检查1方法的数据,如果找不到数据,我会的   在方法5上写它。如果执行不使用线程安全,它将写入3   数据。(因为所有未找到方法1的数据,也都没有等待完成   一起......)

     

UPDATE2:

     

也许我对Thread安全感到困惑,但感谢朋友的帮助。

2 个答案:

答案 0 :(得分:2)

  

可能1个请求是否处理但未完成,第二个请求启动句柄?

当然,否则您的网站一次只能有效处理一个页面视图。

您必须使您的代码线程安全。例如,请参阅how to lock an asp.net mvc action?,或者您可以在数据库中创建一个代码必须查询的锁。

答案 1 :(得分:1)

在ASP.NET控制器中,实例为thread-safe,因为将为每个请求创建新的控制器实例。因此,并发调用不会相互影响。

StaticShared资源不是thread-safe