D dana Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-17 #1 产生的dll文件,一运行一次就不允许我重新编译,也不允许删除这是为何?
真 真正的李勇 Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-17 #3 IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/WinCGI/ISAPI程序,它可以代替PWS/IIS等WWW服务器软件, 调试本地的CGI/WinCGI/ISAPI程序,其原理是模拟PWS/IIS接受WWW请求, 并根据您的设置将类似于“http://www.123.com/testisapi.dll” 的远程URL映射到本地文件,如“d:/intrabob/demo/TestISAPI.dll”。 IntraBob目前的版本为5.0,支持调试Delphi3 -4 C/S、Delphi 5 Pro/Enterprise、 C++Builder3-4 C/S中的WebModules,同时全面支持WebBroker技术和Delphi5 中的InternetExpress。 可以从http://www2.drbob42.com/drbob42/intrabob.zip下载IntraBob5.0软件及 演示文件,IntraBob.zip文件解压缩后有六个文件,各个文件用途如下: Debug.dll:ISAPI程序,用于演示IntraBob的调试功能。 Debug.dpr:ISAPI程序,Debug.dll的源代码,用于演示IntraBob的调试功能。 Drbob42.zip:Internet组件,CRC、CRC32、SMTP、 POP3、FTP。 Home.htm:调用演示ISAPI程序Debug.dll的HTML 页面文件。它是IntraBob程序启 动时调用的默认页面。 Intrabob.exe:IntraBob程序,用来调试CGI/ WinCGI/ISAPI程序。 Readme:IntraBob程序功能介绍及使用方法。 下面以IntraBob5.0和Delphi3.0为例介绍用 IntraBob调试CGI/WinCGI/ISAPI程序 的方法。我们将用Delphi3.0编写一个简单的ISAPI 程序来演示IntraBob的用法。 假设IntraBob5.0被解压缩到文件夹“d:/intrabob/”下,被调试的ISAPI位于文件夹 “d:/intrabob/demo/”下。 一、调用页面 首先,我们需要一个页面,该页面用于调用要调试的 ISAPI程序并向其传递参数, 它要求用户输入姓名、性别、省份,用户提交后将这三个参数给 http://www.123.com/testisapi.dll用于显示。 该页面存为 “D:/INTRABOB/demo/testisapi.htm”,其HTML代码如下: < HTML > < HEAD > < TITLE >用IntraBob调试ISAPI< /TITLE > < /HEAD > < BODY > < H2 >用IntraBob调试ISAPI< /H2 > < HR > < FORM ACTION=“http://www.123.com/ testisapi.dll" METHOD=“POST" > < br >姓名:< INPUT TYPE=“text" NAME=“Name" SIZE=“40" value=‘王发军' > < br >性别:< INPUT TYPE=“radio" NAME=“Sex"value=‘男' checked>男 < INPUT TYPE=“radio"NAME=“Sex" value=‘女' >女 < br >省份:< Select Name=Province >< Option >河南 < /Option >< Option >河北< /Option >< /Select > < br >< INPUT TYPE=“SUBMIT" VALUE=“提交测试ISAPI" > < INPUT TYPE=“RESET" VALUE=“重新填写" > < /FORM > < /BODY > < /HTML > 二、编写ISAPI程序 然后,我们用Delphi3.0编写一个简单的ISAPI程序,接受姓名、性别、省份三个 参数并将其显示出来。 (1)建立一个Web Server Application工程文件,选择“ISAPI/NSAPI Dynamic Link Library”; (2)在WebModule1中增加一个WebActionItem1,在其OnAction事件中写下如下代码: procedure TWebModule1.WebModule1WebActionItem1Action (Sender: TObject;Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); var Name,Sex,Province : string; begin Name := Request.ContentFields.values[‘name']; Sex := Request.ContentFields.values[‘Sex']; Province := Request.ContentFields.values[‘Province']; Response.Content := ‘ 您的输入如下:'; Response.Content := Response.Content + ‘ 姓名:' + name; Response.Content := Response.Content + ‘ 性别:' + sex; Response.Content := Response.Content + ‘ 省份:' + Province; Response.Content := Response.Content + ‘'; end; (3)将程序存到文件夹“d:/intrabob/demo/”下,命名工程文件为TestISAPI.dpr。 (4)用Ctrl+F9编译确保无语法错误,并生成ISAPI 程序文件TestISAPI.DLL。 三、用IntraBob5.0调试ISAPI程序 1. 设置ISAPI工程文件运行参数 将IntraBob.exe设置为TestISAPI.dpr的Host Application。在“Run”菜单下的“ Parameters...”中,将Host Application设置为 “D:/INTRABOB/Intrabob.exe”, 如下图所示: 另外,用F5在程序中设置一个断点,用于演示 IntraBob的调试功能。 2.开始ISAPI程序调试 用F9开始运行程序TestISAPI.DLL,IntraBob.exe 将随之启动,并会调用其默认页 面“D:/INTRABOB/HOME.HTM”,在IntraBob.exe调用的IE 控件的地址栏输入我们的调试 页面地址“D:/INTRABOB/demo/testisapi.htm”,可显示页面,如下图所示: 3.设置IntraBob选项,调试ISAPI程序 为了用IntraBob调试ISAPI程序,还需要设置 IntraBob选项,主要是将远程URL映 射到本地文件,也就是将 “http://www.123.com/testisapi.dll”的远程URL映射到 本地文件 “d:/intrabob/demo/TestISAPI.dll”。选择“Options”页,IntraBob 已经从显示的页面中提取出远程URL“http://www.123.com/testisapi.dll”,并填入 “Remote URL”栏,我们只需要将“Local App”栏指定为“d:/intrabob/demo/TestISAPI.dll”即可。然后回到 “Browser”页,在测试页面中点击“提交测试ISAPI”按钮来提交已输入的数据。此后,Delphi IDE的代码窗口被激活,我们会看到程序已运行到刚才设置的断点处,我们就可以开始像调试普通应用程序一样调试ISAPI程序了,剩下的就是Delphi程序调试技巧问题了。将ISAPI 运行到结束,IntraBob将输出结果以“D:/INTRABOB/output.htm”的形式显示在“Browser” 页中。由于IntraBob显示HTML页面时用的是微软提供的IE控件,我们可以用鼠标右键来选择“后退”、 “刷新”、“查看源代码”等功能。 四、注意事项 (1)如果在“Browser”窗口中刷新调试页面,IntraBob 选项将恢复为默认设置, 此时可能需要在“Options”页中重新设置ISAPI的路径即重新设置“Local App”的值。 否则可能出现类似“TerminateExtension crashed in testisapi.dll” 的错误。 (2)IntraBob5.0不接受48K以上的提交数据。 有了IntraBob这个工具软件,我们在本机上调试 CGI/WinCGI/ISAPI程序就不 必安装PWS或IIS了,同时也不用频繁启动和停止PWS/ⅡS、甚至重新启动计算机了。 以上操作和程序在PWin98 + Delphi3.0 C/S + IntraBob5.0 + IE4.0及PWinNT4.0 + Delphi3.0 C/S + IntraBob5.0 + IE5.0下测试通过。 给粉吧,当当当,就是only you! 我转载他人的帖子。
IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/WinCGI/ISAPI程序,它可以代替PWS/IIS等WWW服务器软件, 调试本地的CGI/WinCGI/ISAPI程序,其原理是模拟PWS/IIS接受WWW请求, 并根据您的设置将类似于“http://www.123.com/testisapi.dll” 的远程URL映射到本地文件,如“d:/intrabob/demo/TestISAPI.dll”。 IntraBob目前的版本为5.0,支持调试Delphi3 -4 C/S、Delphi 5 Pro/Enterprise、 C++Builder3-4 C/S中的WebModules,同时全面支持WebBroker技术和Delphi5 中的InternetExpress。 可以从http://www2.drbob42.com/drbob42/intrabob.zip下载IntraBob5.0软件及 演示文件,IntraBob.zip文件解压缩后有六个文件,各个文件用途如下: Debug.dll:ISAPI程序,用于演示IntraBob的调试功能。 Debug.dpr:ISAPI程序,Debug.dll的源代码,用于演示IntraBob的调试功能。 Drbob42.zip:Internet组件,CRC、CRC32、SMTP、 POP3、FTP。 Home.htm:调用演示ISAPI程序Debug.dll的HTML 页面文件。它是IntraBob程序启 动时调用的默认页面。 Intrabob.exe:IntraBob程序,用来调试CGI/ WinCGI/ISAPI程序。 Readme:IntraBob程序功能介绍及使用方法。 下面以IntraBob5.0和Delphi3.0为例介绍用 IntraBob调试CGI/WinCGI/ISAPI程序 的方法。我们将用Delphi3.0编写一个简单的ISAPI 程序来演示IntraBob的用法。 假设IntraBob5.0被解压缩到文件夹“d:/intrabob/”下,被调试的ISAPI位于文件夹 “d:/intrabob/demo/”下。 一、调用页面 首先,我们需要一个页面,该页面用于调用要调试的 ISAPI程序并向其传递参数, 它要求用户输入姓名、性别、省份,用户提交后将这三个参数给 http://www.123.com/testisapi.dll用于显示。 该页面存为 “D:/INTRABOB/demo/testisapi.htm”,其HTML代码如下: < HTML > < HEAD > < TITLE >用IntraBob调试ISAPI< /TITLE > < /HEAD > < BODY > < H2 >用IntraBob调试ISAPI< /H2 > < HR > < FORM ACTION=“http://www.123.com/ testisapi.dll" METHOD=“POST" > < br >姓名:< INPUT TYPE=“text" NAME=“Name" SIZE=“40" value=‘王发军' > < br >性别:< INPUT TYPE=“radio" NAME=“Sex"value=‘男' checked>男 < INPUT TYPE=“radio"NAME=“Sex" value=‘女' >女 < br >省份:< Select Name=Province >< Option >河南 < /Option >< Option >河北< /Option >< /Select > < br >< INPUT TYPE=“SUBMIT" VALUE=“提交测试ISAPI" > < INPUT TYPE=“RESET" VALUE=“重新填写" > < /FORM > < /BODY > < /HTML > 二、编写ISAPI程序 然后,我们用Delphi3.0编写一个简单的ISAPI程序,接受姓名、性别、省份三个 参数并将其显示出来。 (1)建立一个Web Server Application工程文件,选择“ISAPI/NSAPI Dynamic Link Library”; (2)在WebModule1中增加一个WebActionItem1,在其OnAction事件中写下如下代码: procedure TWebModule1.WebModule1WebActionItem1Action (Sender: TObject;Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); var Name,Sex,Province : string; begin Name := Request.ContentFields.values[‘name']; Sex := Request.ContentFields.values[‘Sex']; Province := Request.ContentFields.values[‘Province']; Response.Content := ‘ 您的输入如下:'; Response.Content := Response.Content + ‘ 姓名:' + name; Response.Content := Response.Content + ‘ 性别:' + sex; Response.Content := Response.Content + ‘ 省份:' + Province; Response.Content := Response.Content + ‘'; end; (3)将程序存到文件夹“d:/intrabob/demo/”下,命名工程文件为TestISAPI.dpr。 (4)用Ctrl+F9编译确保无语法错误,并生成ISAPI 程序文件TestISAPI.DLL。 三、用IntraBob5.0调试ISAPI程序 1. 设置ISAPI工程文件运行参数 将IntraBob.exe设置为TestISAPI.dpr的Host Application。在“Run”菜单下的“ Parameters...”中,将Host Application设置为 “D:/INTRABOB/Intrabob.exe”, 如下图所示: 另外,用F5在程序中设置一个断点,用于演示 IntraBob的调试功能。 2.开始ISAPI程序调试 用F9开始运行程序TestISAPI.DLL,IntraBob.exe 将随之启动,并会调用其默认页 面“D:/INTRABOB/HOME.HTM”,在IntraBob.exe调用的IE 控件的地址栏输入我们的调试 页面地址“D:/INTRABOB/demo/testisapi.htm”,可显示页面,如下图所示: 3.设置IntraBob选项,调试ISAPI程序 为了用IntraBob调试ISAPI程序,还需要设置 IntraBob选项,主要是将远程URL映 射到本地文件,也就是将 “http://www.123.com/testisapi.dll”的远程URL映射到 本地文件 “d:/intrabob/demo/TestISAPI.dll”。选择“Options”页,IntraBob 已经从显示的页面中提取出远程URL“http://www.123.com/testisapi.dll”,并填入 “Remote URL”栏,我们只需要将“Local App”栏指定为“d:/intrabob/demo/TestISAPI.dll”即可。然后回到 “Browser”页,在测试页面中点击“提交测试ISAPI”按钮来提交已输入的数据。此后,Delphi IDE的代码窗口被激活,我们会看到程序已运行到刚才设置的断点处,我们就可以开始像调试普通应用程序一样调试ISAPI程序了,剩下的就是Delphi程序调试技巧问题了。将ISAPI 运行到结束,IntraBob将输出结果以“D:/INTRABOB/output.htm”的形式显示在“Browser” 页中。由于IntraBob显示HTML页面时用的是微软提供的IE控件,我们可以用鼠标右键来选择“后退”、 “刷新”、“查看源代码”等功能。 四、注意事项 (1)如果在“Browser”窗口中刷新调试页面,IntraBob 选项将恢复为默认设置, 此时可能需要在“Options”页中重新设置ISAPI的路径即重新设置“Local App”的值。 否则可能出现类似“TerminateExtension crashed in testisapi.dll” 的错误。 (2)IntraBob5.0不接受48K以上的提交数据。 有了IntraBob这个工具软件,我们在本机上调试 CGI/WinCGI/ISAPI程序就不 必安装PWS或IIS了,同时也不用频繁启动和停止PWS/ⅡS、甚至重新启动计算机了。 以上操作和程序在PWin98 + Delphi3.0 C/S + IntraBob5.0 + IE4.0及PWinNT4.0 + Delphi3.0 C/S + IntraBob5.0 + IE5.0下测试通过。 给粉吧,当当当,就是only you! 我转载他人的帖子。
P PPMouse Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-17 #4 一旦运行一次,ISAPI程序就被WEB服务器接管了,你不能重新编译或删除它,除非重 新启动机器。 有三种解决方法: 1、有ISAPI调试工具intraobob。 2、先写成CGI,调试完成后改成ISAPI(不推荐)。 3、到http://ph11.126.com处下载《进程管理工具》,可以杀掉WEB进程来达到杀掉 你的ISAPI程序进程。
一旦运行一次,ISAPI程序就被WEB服务器接管了,你不能重新编译或删除它,除非重 新启动机器。 有三种解决方法: 1、有ISAPI调试工具intraobob。 2、先写成CGI,调试完成后改成ISAPI(不推荐)。 3、到http://ph11.126.com处下载《进程管理工具》,可以杀掉WEB进程来达到杀掉 你的ISAPI程序进程。
X xygz Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-17 #5 不允许重新编译是因为你将DLL放在PWS或其他类似目录以下,系统将之看成是系统文件 运行一次后,系统接管了这个程序。你不能再删除或覆盖。 重起后,系统没使用这个文件,你就可以在系统不知的情况下修改(删除或覆盖)。 调试WEB程序还是使用INTRABOB这样的调试工具,否则真是一大痛苦。 身受过, 同情啊同情
不允许重新编译是因为你将DLL放在PWS或其他类似目录以下,系统将之看成是系统文件 运行一次后,系统接管了这个程序。你不能再删除或覆盖。 重起后,系统没使用这个文件,你就可以在系统不知的情况下修改(删除或覆盖)。 调试WEB程序还是使用INTRABOB这样的调试工具,否则真是一大痛苦。 身受过, 同情啊同情
C CJF Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-17 #6 是因为你的文件正在使用,所以不能操作。其实把进程搞掉就可以,至于方法,上面的 都可以,你自己试试看吧。
D dana Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-18 #7 可是intraobob我不知如何调试,看了上面的那篇文章,我就是根据它的要求一步步的做, 可是很多都不太理解,不知哪里还需要设置。
D dana Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-19 #8 在intrabob调试isapi时,可是为何浏览器却提示脚本错误? “document”未定义 这是为何?
R RedBeret Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-19 #9 有时候intrabob调试能通过,但是在IIS里就出错。最好的办法是先写成CGI调试通过后再转成ISAPI。
P PoleStar Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-19 #10 dll被使用后,是由IIS接管的,IIS不重启,该DLL就不会被释放, 有三个解决办法: 1、如楼上所说,用intrabob; 2、如果在win2000下做,那么IIS在右键菜单中提供了一个重新启动的选项, 重新启动后该DLL就被释放了; 如果是在NT下,则在控制面板中有一个“服务”功能,在其中找到”WWW服务” 并停止该服务,也可以做到释放DLL; 3、如RedBeret所说,写成CGI调试通过后再转成ISAPI。
dll被使用后,是由IIS接管的,IIS不重启,该DLL就不会被释放, 有三个解决办法: 1、如楼上所说,用intrabob; 2、如果在win2000下做,那么IIS在右键菜单中提供了一个重新启动的选项, 重新启动后该DLL就被释放了; 如果是在NT下,则在控制面板中有一个“服务”功能,在其中找到”WWW服务” 并停止该服务,也可以做到释放DLL; 3、如RedBeret所说,写成CGI调试通过后再转成ISAPI。
B bnulaw Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-19 #12 一个最最简单的方法: 接ctrl+alt+del找出进程列表 找到dllhost(有两个),选中一个点击结束进程 如果进程正常关闭则表示你成功,否则表示那个dllhost 并非你自己的,再选中另外一个结束进程即可. 这方法在win2000中灵,98不知道
一个最最简单的方法: 接ctrl+alt+del找出进程列表 找到dllhost(有两个),选中一个点击结束进程 如果进程正常关闭则表示你成功,否则表示那个dllhost 并非你自己的,再选中另外一个结束进程即可. 这方法在win2000中灵,98不知道