防止应用程序进入超时状态

时间:2012-08-09 20:47:23

标签: c# asp.net vb.net

对不起专家的称号,我想不出更好的方法。

下面的代码接收多达20个链接,然后使用组件,将这20个链接转换为文档,并将这些文档存储到一个adobe pdf文件中。

如果您传递的距离小于10,则可以正常工作。上述任何内容都会破坏应用。

事实证明,原因代码中断是因为运行时间过长。

在asp.net(c#或vb.net)中是否有办法将应用程序配置为运行更长时间而不会中断?

这是在iis方面完成的吗?

如果是,有人可以指出我正确的方向吗?

我知道的一件事就是iis元数据库将其设置为接受更大的尺寸,但我不知道如何处理以下代码以确保应用程序在运行时间过长时不会中断。

using System;
using System.Collections.Generic;
using System.Text;
using EO.Pdf;
using System.Collections.Specialized;
using EO.Web;

partial class getRecs : System.Web.UI.Page
{
    private void  // ERROR: Handles clauses are not supported in C#
Page_Load(object sender, System.EventArgs e)
    {

        if (!Page.IsPostBack) {
            string linksList = Request.QueryString("pid");
            string[] AllLinks = linksList.Split(",");

            //Create a PdfDocument object
            PdfDocument doc = new PdfDocument();

            string links = null;

            foreach ( links in AllLinks) {

                HtmlToPdf.ConvertUrl(url, doc);
            }

            doc.Save(Response.OutputStream);

        }
    }

}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

似乎您遇到了请求超时问题,因为该过程花费的时间太长,无法响应生成PDfs的客户端。您可以在Web.config中增加“请求超时”设置:

<configuration>
  <system.web>
  <httpRuntime 
    executionTimeout="1000"/>
  </system.web>
</configuration>

executionTimeout以秒为单位设置。根据您的需求进行调整。这仅适用于编译元素中debug标志设置为false的情况。

Link to MSDN文档。