非常简短:我遇到了确保VB DLL遵守IIS和ASP中设置的超时的问题。
我工作的网站使用了许多自制的DLL,他们的方法运行的时间可能比网络用户愿意等待的时间长。如果访问者按Escape或关闭浏览器,则该过程自然会在服务器上继续,从而占用CPU时间和内存。
在我的ASP中,我将server.scriptTimeout设置为较低的数字(比方说10秒),我在IIS中为整个Web应用程序做了同样的事情(因为我知道如果它更低,则忽略server.scriptTimeout比IIS超时)。
如果我运行的ASP页面中没有任何内容,但循环运行了几百万次,那么脚本 正确地超时,即10秒后。但是,如果我将该循环移动到一个非常简单的DLL(然后使用COM +正确注册),那么我的脚本会在超时之前运行大约210秒。
所以我的问题是:如何按照我的要求让脚本超时?
答案 0 :(得分:0)
据我所知,ASP引擎在调用DLL中的方法时将控制权传递给DLL。在方法返回之前,ASP实际上并没有调用,一旦调用返回,它就意识到时间已经超过并结束了脚本的执行。