极简单的问题? 关于 isapi 程序运行结束后的资源释放(20分)

  • 主题发起人 主题发起人 alvinlv
  • 开始时间 开始时间
A

alvinlv

Unregistered / Unconfirmed
GUEST, unregistred user!
<pre>
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp;
type
TWebModule1 = class(TWebModule)
procedure WebModule1DefaultAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1DefaultAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := 'This is Sample';
end;
end.
</pre>
程序运行没有问题。 但运行之后,无法删除这个.dll文件。
是系统的资源没有释放,因为重新启动机器后就可以删除。

请教怎样在程序运行之后释放资源, 使这个.dll 文件能够删除?

thks!
 
当系统启动这个dll之后,就将它放到一个线程池中,这样下次在调用时就可以直接
从线程池中取出,可以加快速度,如果你用的是iis,那么,你可以把iis的高速缓存
关掉,如果是pws,很不幸,你只能重启(your computer not your pws).在大富翁上
有很多这种问题,也有一些很好的
解决办法,你可以搜索一下,一般来说大家用的是intrabob debugger ,这是一个dll
调试工具,wrymy.home.chinaren.com上有下载,当然,你也可以自己写一个程序通过
调用windows api自己来结束这个线程,反正我不会,好像这上面有人说他会的,你
最好搜索一下吧.
 
我以前也写过isapi,在nt 4的注册表里面有个键值 什么cache 的把她改成0,
这样isapi 运行结束就释放自己。他会影响iis isapi速度.时候要改回去。
但我忘么这个键值,在很多isapi的书上都有说。

另外,你可以线把她写成CGI, 调试结束后在改成isapi.
 
先用 cgi 调试,最后改成 isapi
 
多人接受答案了。
 
后退
顶部