如何从内存释放isapi 建立的dll文件(50分)

  • 主题发起人 主题发起人 phyllis
  • 开始时间 开始时间
P

phyllis

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi 3 设计的web server isapi 应用,查询数据库生成页面后(在ie4中),dll文件变得不能改名和删除,只有重启机器才能进行改名、删除操作,why?是否dll占用的内存未释放?如何让服务器调用TerminateExtension函数终止dll并卸载它?
 
这是ISAPI的机制造成的,只要关掉Server就可以该名和删除了
CGI是一个可执行文件,一般是exe文件,对于用户的每一次请求
服务器都会生成一个实例,所以会造成服务器段的资源浪费。
而ISAPI只是一个DLL动态连接库,对于用户请求始终只有一个
这样ISAPI的效率比CGI高。
ISAPI只调用一次以后就不要在重新装载了,一旦被调用后就
不会自动释放,知道server DOWN
要结束ISAPI的最简单方法就是 STOP THE Server

我不清楚如何直接结束ISAPI释放DLL文件,作为DLL文件应该是
可以的//不过这样好象意义不大 (除了修改ISAPI 否则使ISAPI
的优势失去了!)
 
对于ISAPI,好多书上都说只能SHUT WEB SERVER了,调试ASP调的DLL也如此。
 
DLL被SERVER使用当然不能释放
可以DOWN SERVER或者把ISAPI DLL的引用记数设置为0(改注册表,位置不知道)
 
To CJ:
改注册表不行
要用特殊的工具
 
我也为这个破问题费了很久的神!
结果也是不可能!!

可恶!的ISAPI! :)
 
如一定要停机更换。ISAPI如何运行在关键任务上!如ISAPI不能运行在关键任务上
。ISAPI还有什么意义?鄙人在ISP工作急需解决这个问题。如有高手高手高高手
望见教
 
什么关键任务??
是指优先级么?如果要想取得最高的IIS-CGI分析权限,建议用ISAPI过滤器。它
可以最先得到一个URL和connect,已经在IIS的最前端了。
不过,我也还没有开始始明白ISAPI过滤器的写法。我还要努力呀! :(
 
这个问题是由于IIS的CACHE机制造成的。
客户BROWSER在请求了ISPAI EXTENSION之后,
IIS就把ISAPI EXTENSION加载内存中专门开辟的一块高速缓冲区中,
之后每次再有客户访问时,自然就不用再去读文件等等,
自然给客户BROWSER的感觉是快极。
TerminateExtension执行后,ISAPI处理就已经结束,
只是仍然占据着这个IIS的缓冲区。

IIS4有个选项,可以选择“不把ISAPI放入高速缓存”。
注意,IIS3没有这个选项。
这样,每次客户BROWSER请求时,就自动加载该ISAPI,
ISAPI处理完毕后,就自动卸载,不占据内存和缓存。
可以方便地调试程序。

注意,此方法仅对ISAPI EXTENSION有效,
对于ISAPI FILTER,是随服务加载的,
除非停掉服务,否则,ISAPI FILTER是无法卸载的。
 
我调试ISAPI程序的时候都是把PROJECT重新命名,如a1.dll,a2.dll等,
而后一起释放!
 
我用过一个方法。
留下Dll在内存中的地址
每次释放是都查计数是否为零,为零就卸掉。
就手动(自动调用工具)卸掉。
 
多人接受答案了。
 
我曾试着用终止pws方法,可没有用,你们说用设置iis的方法,我不知该怎么做。在那里设置?小妹是新手,还往各位前辈赐教。
 
呵呵!
第一次,在大富翁妹妹提问题! :)


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曾有精辟解决方案!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部