上下文: 我目前正在我公司的一个网站/ wep应用程序上工作,其中包含一个用于向一些用户发送大约280封电子邮件的页面。
在测试服务器上一切正常,但在生产服务器上我们在函数中间有一个超时(发送所有内容大约需要5分钟) 有些用户收到了邮件,有些用户没有。
在测试服务器中,一切正常,我是收到所有邮件,没有错误,没有异常,没有超时的人。
通过使用几乎相同的代码查看具有相同功能的其他网站,我在PageLoad的开头看到了这一点:Server.ScriptTimeout = 600
问题:
我发送邮件的功能如下:
onclick()
{
foreach()
{
sendmail()
}
}
由于foreach完全迭代需要大约5分钟,因此按钮的On_click事件是否可能触发超时?
感谢您的帮助
注意:这是一个自定义按钮,带有confirmMessage,阻止页面直到事件clic结束。
注意2:我没有看到代码中的任何问题,因为重要的发送部分被复制到我们的一个工作应用程序上,我只是在评论message.send()函数时尝试了所有代码而且没有完全没问题。 它可能是我们在数据库中的邮件地址的问题,但除非我发送真实邮件,我不能测试它们,我不想发送真实邮件作为测试:)
答案 0 :(得分:1)
是的,OnClick
事件可能会超时。
IIS的默认超时为110秒(请参阅MSDN doc)。您可以使用<httpRuntime executionTimeout = "HH:MM:SS" />
进行调试时,未应用executionTimeout
属性。这就是为什么在开发功能时没有看到问题的原因。
如果使用Ajax(通过ScriptManager
)调用函数,则可以使用AsyncPostBacTimeout
属性为最长执行时间设置不同的时间。