D
deem
Unregistered / Unconfirmed
GUEST, unregistred user!
大家都知道用Delphi实现ISAPI的Web程序时存在一个大问题就是调试问题。虽然有InterBob
等调试工具,但是还是觉得麻烦。因此,比较ISAPI与CGI之间的差别发现下面的特点:
//library pro1;
program pro1;//**********************
{$APPTYPE CONSOLE} //*********************
uses
WebBroker,
// ISAPIApp,
CGIApp,//**************************
Unit1 in 'Unit1.pas' {NewsinfoWebModule: TWebModule};
{$R *.RES}
//exports
// GetExtensionVersion,
// HttpExtensionProc,
// TerminateExtension;
begin
Application.Initialize;
Application.CreateForm(TNewsinfoWebModule, NewsinfoWebModule);
Application.Run;
end.
其中用//注释的部分是ISAPI(.dll)的工程文件中生成的,而用//****************注释的则是
CGI(.exe)生成的。于是,就先用CGI方式编程(因为好调试,不像DLL运行一次就驻留内存)
等网站全部建好之后,在把所有的CGI(.exe)改为ISAPI(.exe)方式(简单地说就是把上
面用//**********************注释的部分全部注释掉,然后再把用//注释掉的语句恢复。
麻烦事来了,改成ISAPI(.dll)后原来能够运行的CGI程序现在不能运行了。浏览器端一连接
就出现了HTTP 500 - 内部服务器错误 。这是怎么回事呢?
另外,还有一个问题,就是我用Delphi做的Web网站,如果正常链接没有问题,但是我试着
连续快速点击IE上的“刷新”按钮时服务器端就不能响应了。只能把服务器重新启动才能
回复正常。我试过用ASP做的网站,无论刷新多少次,点击多快网站服务器都能正常服务。
这又是怎么会事?请各位Delphi迷们指教。
等调试工具,但是还是觉得麻烦。因此,比较ISAPI与CGI之间的差别发现下面的特点:
//library pro1;
program pro1;//**********************
{$APPTYPE CONSOLE} //*********************
uses
WebBroker,
// ISAPIApp,
CGIApp,//**************************
Unit1 in 'Unit1.pas' {NewsinfoWebModule: TWebModule};
{$R *.RES}
//exports
// GetExtensionVersion,
// HttpExtensionProc,
// TerminateExtension;
begin
Application.Initialize;
Application.CreateForm(TNewsinfoWebModule, NewsinfoWebModule);
Application.Run;
end.
其中用//注释的部分是ISAPI(.dll)的工程文件中生成的,而用//****************注释的则是
CGI(.exe)生成的。于是,就先用CGI方式编程(因为好调试,不像DLL运行一次就驻留内存)
等网站全部建好之后,在把所有的CGI(.exe)改为ISAPI(.exe)方式(简单地说就是把上
面用//**********************注释的部分全部注释掉,然后再把用//注释掉的语句恢复。
麻烦事来了,改成ISAPI(.dll)后原来能够运行的CGI程序现在不能运行了。浏览器端一连接
就出现了HTTP 500 - 内部服务器错误 。这是怎么回事呢?
另外,还有一个问题,就是我用Delphi做的Web网站,如果正常链接没有问题,但是我试着
连续快速点击IE上的“刷新”按钮时服务器端就不能响应了。只能把服务器重新启动才能
回复正常。我试过用ASP做的网站,无论刷新多少次,点击多快网站服务器都能正常服务。
这又是怎么会事?请各位Delphi迷们指教。