P phyllis Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-05 #1 用delphi 3 设计的web server isapi 应用,查询数据库生成页面后(在ie4中),dll文件变得不能改名和删除,只有重启机器才能进行改名、删除操作,why?是否dll占用的内存未释放?如何让服务器调用TerminateExtension函数终止dll并卸载它?
用delphi 3 设计的web server isapi 应用,查询数据库生成页面后(在ie4中),dll文件变得不能改名和删除,只有重启机器才能进行改名、删除操作,why?是否dll占用的内存未释放?如何让服务器调用TerminateExtension函数终止dll并卸载它?
M mayday Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-06 #2 这是ISAPI的机制造成的,只要关掉Server就可以该名和删除了 CGI是一个可执行文件,一般是exe文件,对于用户的每一次请求 服务器都会生成一个实例,所以会造成服务器段的资源浪费。 而ISAPI只是一个DLL动态连接库,对于用户请求始终只有一个 这样ISAPI的效率比CGI高。 ISAPI只调用一次以后就不要在重新装载了,一旦被调用后就 不会自动释放,知道server DOWN 要结束ISAPI的最简单方法就是 STOP THE Server 我不清楚如何直接结束ISAPI释放DLL文件,作为DLL文件应该是 可以的//不过这样好象意义不大 (除了修改ISAPI 否则使ISAPI 的优势失去了!)
这是ISAPI的机制造成的,只要关掉Server就可以该名和删除了 CGI是一个可执行文件,一般是exe文件,对于用户的每一次请求 服务器都会生成一个实例,所以会造成服务器段的资源浪费。 而ISAPI只是一个DLL动态连接库,对于用户请求始终只有一个 这样ISAPI的效率比CGI高。 ISAPI只调用一次以后就不要在重新装载了,一旦被调用后就 不会自动释放,知道server DOWN 要结束ISAPI的最简单方法就是 STOP THE Server 我不清楚如何直接结束ISAPI释放DLL文件,作为DLL文件应该是 可以的//不过这样好象意义不大 (除了修改ISAPI 否则使ISAPI 的优势失去了!)
R rlsoft Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-08 #3 对于ISAPI,好多书上都说只能SHUT WEB SERVER了,调试ASP调的DLL也如此。
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-09 #4 DLL被SERVER使用当然不能释放 可以DOWN SERVER或者把ISAPI DLL的引用记数设置为0(改注册表,位置不知道)
A aimingoo Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-01 #6 我也为这个破问题费了很久的神! 结果也是不可能!! 可恶!的ISAPI!
L ltao Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-07 #7 如一定要停机更换。ISAPI如何运行在关键任务上!如ISAPI不能运行在关键任务上 。ISAPI还有什么意义?鄙人在ISP工作急需解决这个问题。如有高手高手高高手 望见教
A aimingoo Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-07 #8 什么关键任务?? 是指优先级么?如果要想取得最高的IIS-CGI分析权限,建议用ISAPI过滤器。它 可以最先得到一个URL和connect,已经在IIS的最前端了。 不过,我也还没有开始始明白ISAPI过滤器的写法。我还要努力呀!
什么关键任务?? 是指优先级么?如果要想取得最高的IIS-CGI分析权限,建议用ISAPI过滤器。它 可以最先得到一个URL和connect,已经在IIS的最前端了。 不过,我也还没有开始始明白ISAPI过滤器的写法。我还要努力呀!
G greenhand Unregistered / Unconfirmed GUEST, unregistred user! 1999-05-13 #9 这个问题是由于IIS的CACHE机制造成的。 客户BROWSER在请求了ISPAI EXTENSION之后, IIS就把ISAPI EXTENSION加载内存中专门开辟的一块高速缓冲区中, 之后每次再有客户访问时,自然就不用再去读文件等等, 自然给客户BROWSER的感觉是快极。 TerminateExtension执行后,ISAPI处理就已经结束, 只是仍然占据着这个IIS的缓冲区。 IIS4有个选项,可以选择“不把ISAPI放入高速缓存”。 注意,IIS3没有这个选项。 这样,每次客户BROWSER请求时,就自动加载该ISAPI, ISAPI处理完毕后,就自动卸载,不占据内存和缓存。 可以方便地调试程序。 注意,此方法仅对ISAPI EXTENSION有效, 对于ISAPI FILTER,是随服务加载的, 除非停掉服务,否则,ISAPI FILTER是无法卸载的。
这个问题是由于IIS的CACHE机制造成的。 客户BROWSER在请求了ISPAI EXTENSION之后, IIS就把ISAPI EXTENSION加载内存中专门开辟的一块高速缓冲区中, 之后每次再有客户访问时,自然就不用再去读文件等等, 自然给客户BROWSER的感觉是快极。 TerminateExtension执行后,ISAPI处理就已经结束, 只是仍然占据着这个IIS的缓冲区。 IIS4有个选项,可以选择“不把ISAPI放入高速缓存”。 注意,IIS3没有这个选项。 这样,每次客户BROWSER请求时,就自动加载该ISAPI, ISAPI处理完毕后,就自动卸载,不占据内存和缓存。 可以方便地调试程序。 注意,此方法仅对ISAPI EXTENSION有效, 对于ISAPI FILTER,是随服务加载的, 除非停掉服务,否则,ISAPI FILTER是无法卸载的。
吉 吉祥鸟 Unregistered / Unconfirmed GUEST, unregistred user! 1999-05-22 #10 我调试ISAPI程序的时候都是把PROJECT重新命名,如a1.dll,a2.dll等, 而后一起释放!
D D4 Unregistered / Unconfirmed GUEST, unregistred user! 1999-05-22 #11 我用过一个方法。 留下Dll在内存中的地址 每次释放是都查计数是否为零,为零就卸掉。 就手动(自动调用工具)卸掉。
芽 芽芽 Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-27 #13 我曾试着用终止pws方法,可没有用,你们说用设置iis的方法,我不知该怎么做。在那里设置?小妹是新手,还往各位前辈赐教。
M mayday Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-27 #14 呵呵! 第一次,在大富翁妹妹提问题! IIS 是 Microsoft的 Internet Information Server PWS 是 Miscosoft的 Personal Web Server 相同点: 都是Microsoft的东西.都是Webserver 不同点: IIS 是 Back Office套件里的一个也就是说 定位是 企业级的WebServer服务器! 当然只能在NT下使用了! 功能还可以,特别支持asp所以用的比较多 PWS 是 Win98中免费送的,自然Personal就只能完成一点点功能了! 定位是 个人应用. 当然要做点牺牲了,比如上面讨论的关于ISAPI的 释放问题. 如果你是写ISAPI建议你还是在NT下装一套IIS4 写的比较好 在98下存在,就只能用PWS了(当然还有第三方Server!) 问题也就难免了! IIS关于ISAPI的释放问题,可以看看已打问题级 amingao曾有精辟解决方案!
呵呵! 第一次,在大富翁妹妹提问题! IIS 是 Microsoft的 Internet Information Server PWS 是 Miscosoft的 Personal Web Server 相同点: 都是Microsoft的东西.都是Webserver 不同点: IIS 是 Back Office套件里的一个也就是说 定位是 企业级的WebServer服务器! 当然只能在NT下使用了! 功能还可以,特别支持asp所以用的比较多 PWS 是 Win98中免费送的,自然Personal就只能完成一点点功能了! 定位是 个人应用. 当然要做点牺牲了,比如上面讨论的关于ISAPI的 释放问题. 如果你是写ISAPI建议你还是在NT下装一套IIS4 写的比较好 在98下存在,就只能用PWS了(当然还有第三方Server!) 问题也就难免了! IIS关于ISAPI的释放问题,可以看看已打问题级 amingao曾有精辟解决方案!