如何增加ASP.NET Ajax PageMethod的超时?

时间:2011-01-27 16:59:59

标签: asp.net asp.net-ajax pagemethods

我有一个ASP.NET页面,其中有几个静态方法,在代码旁边用[WebMethod]装饰,然后使用PageMethods.MyMethodName(myParameter, myOnCompleteHandler, myOnErrorHander);从javascript调用。

其中一个方法被多次调用,由于调用量很大,运行时可能很长。目前,该方法运行正常,但需要> 5分钟才能完成的调用超时。我想把这个跨度增加到10分钟。

我试过了:

  • ScriptManager.AsyncPostBackTimeout = 600;
  • Server.ScriptTimeout = 600;
  • this.Page.AsyncTimeout = new TimeSpan(0,10,0);
  • Sys.Net.WebRequestManager.set_defaultTimeout(600000);在javascript中

2 个答案:

答案 0 :(得分:2)

将以下行添加到system.web部分的web.config中。

<httpRuntime executionTimeout="3600" maxRequestLength="2147483647" />

迟到的回应,但也许这会对下一个人有所帮助。

答案 1 :(得分:1)

正确的答案是here,因为AJAX超时是由脚本管理器控制而不是http执行超时。

您需要掌握scriptmanager控件(在代码或标记中),并根据需要将AsyncPostBackTimeout属性设置为合适的值。

import ij.IJ;
import ij.ImagePlus;
import ij.io.FileSaver;
import ij.plugin.PlugIn;


public class Test implements PlugIn {

public static void main(String[] args) {

    Test test = new Test();
    test.run("Denoise.ijm");

}

@Override
public void run(String arg0) {
    String directory = "C:\\Users\\Speedy Octopus\\Desktop\\10Cover Shots\\10.JPG";

    ImagePlus imp = IJ.openImage(directory);
    FileSaver fileSaver = new FileSaver(imp);

    System.setProperty("plugins.dir", "C:\\Users\\Speedy Octopus\\Downloads\\ij150-win-java8\\ImageJ\\plugins");
    IJ.run(imp, "Non-local Means Denoising", "sigma=5 smoothing_factor=1");
    fileSaver.saveAsJpeg("C:\\Users\\Speedy Octopus\\Desktop\\10Cover Shots\\10edited.JPG");
}
}