on_click事件和超时服务器

时间:2014-03-20 16:42:07

标签: c# asp.net button timeout

上下文: 我目前正在我公司的一个网站/ wep应用程序上工作,其中包含一个用于向一些用户发送大约280封电子邮件的页面。

在测试服务器上一切正常,但在生产服务器上我们在函数中间有一个超时(发送所有内容大约需要5分钟) 有些用户收到了邮件,有些用户没有。

在测试服务器中,一切正常,我是收到所有邮件,没有错误,没有异常,没有超时的人。

通过使用几乎相同的代码查看具有相同功能的其他网站我在PageLoad的开头看到了这一点:Server.ScriptTimeout = 600

问题:

我发送邮件的功能如下:

onclick()
{
    foreach()
    {
        sendmail()
    }
}

由于foreach完全迭代需要大约5分钟,因此按钮的On_click事件是否可能触发超时?

感谢您的帮助

注意:这是一个自定义按钮,带有confirmMessage,阻止页面直到事件clic结束。

注意2:我没有看到代码中的任何问题,因为重要的发送部分被复制到我们的一个工作应用程序上,我只是在评论message.send()函数时尝试了所有代码而且没有完全没问题。 它可能是我们在数据库中的邮件地址的问题,但除非我发送真实邮件,我不能测试它们,我不想发送真实邮件作为测试:)

1 个答案:

答案 0 :(得分:1)

是的,OnClick事件可能会超时。

IIS的默认超时为110秒(请参阅MSDN doc)。您可以使用<httpRuntime executionTimeout = "HH:MM:SS" />

更改web.config中的max executionTimeout

进行调试时,未应用executionTimeout属性。这就是为什么在开发功能时没有看到问题的原因。

如果使用Ajax(通过ScriptManager)调用函数,则可以使用AsyncPostBacTimeout属性为最长执行时间设置不同的时间。