ASP NET MVC发出请求奇怪的行为

时间:2011-11-08 14:53:14

标签: asp.net-mvc

首先,抱歉我的英语不好。

我使用asp net mvc遇到了一个奇怪的问题。 我有简单的控制器,可以执行2个操作。第一次操作是连续的,可能需要几分钟。而另一个是短暂的,并执行了几秒钟。 像这样:

public class TestController : Controler {
    [HttpPost]
    public string Func1(long id) {
        // continuous operation
        return new ValueGetter().Get(id)
    }

    [HttpPost]
    public string Func2(long id) {
        return "Abc";
    }
}

从客户端我通过jqueries post调用thouse方法:

$.post(url).sucess(...);

问题在于下一个:执行第一个操作时,第二个操作将等待,直到第一个操作完成。 我尝试使用AsyncController,如http://msdn.microsoft.com/en-us/library/ee728598.aspx所述,但结果是相同的......

我在global.asax中记录了一些应用程序事件:

    protected void Application_PostMapRequestHandler(object sender, EventArgs e) {
        LoggerManager.Info("PostMapRequestHandler fired in global.asax");
    }

    protected void Application_AcquireRequestState(object sender, EventArgs e) {
        LoggerManager.Info("AcquireRequestState fired in global.asax");
    }

如果我例如调用第一个方法一次,然后立即调用第二个方法三次,我在日志文件中得到以下结果:

1.PostMapRequestHandler
2.AcquireRequestState
3.PostMapRequestHandler
4.PostMapRequestHandler
5.PostMapRequestHandler
... after first method is executed sucessfuly
6.AcquireRequestState
7.AcquireRequestState
8.AcquireRequestState

我使用IIS 7(不是快递)和asp.net mvc 3

为什么会发生以及如何解决?

1 个答案:

答案 0 :(得分:1)

我在这里找到了我的问题的答案:

Session less MVC Controller for MVC 2 / RC(MSDN博客)

如果有人遇到类似的问题,我希望它会有所帮助。