我有一个在IIS 5.1上运行的vanilla ASP应用程序。 ASP文件中的以下代码导致IIS抛出“操作超时”错误。但是,尽管存在错误,该过程仍然在后台运行在服务器上,并最终按预期完成。
我通过IIS MMC和ASP文件(Server.ScriptTimeout)将ASP脚本超时从90秒(默认)增加到600,1000甚至10000秒(我知道非常高的脚本超时的影响)但是无论设置的脚本超时如何,都会始终出现错误。
WebServ是一个COM +应用程序,我观察到在应用程序内运行的过程大约需要80到90秒。此应用程序不会在内部操纵任何IIS设置。
尽管可以优化COM +应用程序中的代码,但我怀疑优化本身是否有用,因为应用程序处理存储在SQL Server中的大量数据。因此,随着数据库的增长,应用程序需要超过90秒才能完成整个过程的可能性很高。
因此有人可以帮助我理解 1.无论ASP脚本超时设置如何,为什么会出现错误“操作超时”? 2.我们应该怎么做才能为ASP文件花更多的时间来完成这个过程?
P.S。我确实在这里浏览了与此错误消息相关的其他一些帖子,但遗憾的是没有找到任何有用的信息。
感谢。
<%
Server.ScriptTimeout = 10000
.... initialize the variables....
Set WebServ = CreateObject("WebServ.RunCommand")
lcResult = WebServ.Call(SessionKey, ConfigID, Program, Function, Mode, Params)
Set WebServ = Nothing
With Response
.ContentType = "text/xml"
.Write(lcResult)
End With
%>
答案 0 :(得分:0)
请尝试在应用程序的附加应用程序池中增加超时时间。
答案 1 :(得分:0)
lcResult的内容应该是什么?
在代码中放置几个response.write和response.end,以尝试查找超时发生的位置。
答案 2 :(得分:0)
我建议将输出调试字符串添加到COM模块。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363362%28v=vs.85%29.aspx
您可以使用调试器或DebugView查看它们(http://technet.microsoft.com/en-us/sysinternals/bb896647)
我还将输出调试字符串包装为COM模块,以便在ASP中使用它。