2012-08-09 33 views
0

对不起,标题专家,我想不出一个更好的方法。防止应用程序进入超时状态

下面的代码接收多达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); 

     } 
    } 

} 

感谢您的帮助。

+2

当你说破的时候,它是否超时?如果是,您可以在web.config中使默认超时值更长。看到如何设置你的时间以下问题http://stackoverflow.com/questions/1205828/set-session-timeout-in-web-config – atbebtg 2012-08-09 20:49:38

+0

你有_have_立即下载所有的链接?你能不能在后台执行此操作,并向用户提供他的PDF已准备好的状态页面? – Oded 2012-08-09 20:51:19

+1

@atbebtg回答你的链接是为了增加会话超时。在我看来,他遇到* Request *超时问题。 – Icarus 2012-08-09 20:53:49

回答

1

看起来您在请求超时方面存在问题,因为进程花费的时间太长,无法响应客户端生成的PDfs。您可以增加Web.config中的请求超时设置:

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

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

Link to MSDN文档。

+0

等,非常感谢你们。我仍然收到以下错误: “Internet Explorer无法显示网页”如果按指示选择了15个以上,则会发生这种情况。 还有什么我可以尝试? – Kenny 2012-08-09 23:45:38

+0

@Kenny能否提供返回的确切HTTP状态代码?你可以使用Firebug或类似的工具发布完整的细节? – Icarus 2012-08-10 00:05:30

+0

没有HTTP状态码。除了错误此错误: “Internet Explorer无法显示网页”,它也说,你可以尝试什么:诊断连接问题;更多信息。这是在尝试超过15次之后发生的。 – Kenny 2012-08-10 00:16:07

相关问题