2012-06-06 51 views
4

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

+0

你确定它不是引发超时异常的调用代理吗? –

回答

3

如果你需要做一些工作,你知道能需要一段时间将是很好的使用AsyncControllers,并且可以设置diferent超时悫行动

例如

[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;

+0

我可以在web.config中进行全局处理吗? –

0

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

HttpContext.Server.ScriptTimeout = XXX; 

如果是像会话或者身份验证超时您需要扩展这些值。