4

我有一个通过 ASP.NET MVC 3 公开的 JSON 服务。该服务作为控制器上的操作公开。我可以成功调用该操作。但是,有时,该操作需要很长时间才能完成。因此,我的调用者由于超时而失败。我的问题是,如何更改 ASP.NET MVC 3 中的超时阈值。

4

2 回答 2

3

如果你需要做一些你知道可能需要一点时间的任务,使用 AsyncControllers 会很好,你可以在动作之间设置不同的超时

例如

[AsyncTimeout(3000)] //timeout in miliseconds
public void DoTaskAsync(){

//something that takes a long time
 AsyncManager.Parameters["result"] = contentresult; //Contentresult is your data result of process

}
public ActionResult DoTaskCompleted(String result){
   return json(result);
}

http://msdn.microsoft.com/en-us/library/ee728598.aspx#Y4400了解详情...

除此以外...HttpContext.Server.ScriptTimeout = 3000;

于 2012-06-06T19:58:45.523 回答
0

这取决于什么是超时。如果只是服务器响应,我相信您可以在控制器本身中设置它(以秒为单位):

HttpContext.Server.ScriptTimeout = XXX;

如果它类似于会话或身份验证超时,您将需要扩展这些值。

于 2012-06-06T19:40:19.137 回答