DLL 在 ASP 開發過程中無法卸載,導致下次測試還需另行重新開機!(200分)

J

jiichen

Unregistered / Unconfirmed
GUEST, unregistred user!
目前在學給 ASP 使用的元件,發現一個問題,每次測試過了之後,便無法重新編譯了,
這樣子導致開發上很大的困擾,想請教各位都是如何解決的?
 
在Component-Import ActiveX里Remove掉你的DLL即可
 
可是,看不見我的 DLL 呀,要怎麼移?
 
让你的dll在调试状态下运行这样你就可以使用dephi中reset来终止进程了具体办法可以
使用,我没做过asp的dll所以你可以自己参考帮助,不知道他的父进程是哪个,但是对于
activex 使用ie,com com +,MTS使用dllhost或者其他的调试工具你也可以自己做一个啊
方便省力
 
在资源管理器-->工具-->文件夹选项:
查看-->显示所有文件
就能看到DLL文件了
 
1. 打开一个DOS窗口,备用;
2. 开始—关闭系统,出现关机对话框,同时按下Ctrl-Shift-Alt,用鼠标点击“否”按钮,
关闭explorer。
3. 在DOS窗口中输入explorer.exe,回车,重新启动windows的explorer核心。
4. OK,所有用不到的DLL已经全部卸载。
 
接着xygz,
。。。
就能看到DLL文件了
选择你要结束的DLL,点右键,选择结束.
 
哈,在Services里停一下WWW服务进程不就行了吗
 
to manboo:
抱歉!之前沒寫過 dll ,所以不知道要怎麼測試,不是都要先註冊進系統才能測試嗎?
他的父程序應該是 DLLHost 。

to xygz:
不是,我的看不見是指Component-Import ActiveX裡看不見。

to savenight:
沒看見有結束的選單呀。

to kthy;
這有點不好吧,重新啟動 explorer ,一些縮在右下角的程式圖示都不見了。


有沒有比較簡單的方法,不需砍掉 explorer 或停止系統服務的方法?

 
对不起,好像应该是任务管理器(好久没做过了,有点记不住了)。[:D]
 
一个办法是在服务中关掉IIS或PWS,再重新启动即可.另一个办法是下载一个intrabob帮助调试.
isapi编程就是这么麻烦.如果是用delphi编web程序建议采用cgi方式,在internet服务的主目录
页中把文件类型设为纯文本和可执行程序即可,注:编译出来的是exe文件
 
在iis 5中简单呀, 在internet 管理其中 将那站点的应用程序保护设定为最高 ,这样
IIS 用单独一个进程为这个站点服务, 在管理器中关闭这个站点,这样那个进程就没了,
你那个asp dll 就会释放了, com dll就是这样, 宿主进程(应用程序)还在运行, com类dll 不会释放,
所以要 设定应用程序保护为最高, 否则你要停止inetinfo.exe .
其它的情况也一样, 办法:停止那个应用程序。
 
对于调试我没有什么办法。[:(]
 
在DELPHI中选择 Project | Options menu item and
check Include remote debug symbols option on Liker tab

在WIN2000的组件服务中找到你的ASP组件, 右键点击 --> 选择属性
拷贝Application ID

切换到DELPHI窗口choose Run | Parameters menu option.
在 Host Application 中填入dllhost.exe的完全路径 c:/winnt/system32/dllhost.exe
在 Run Parameters 中填入 /processID:{你的Application ID}

通过以上设置, 你可以象调试普通应用程序一样设置断点, 运行程序, 不需要重新启动....
需通过浏览器来执行你的ASP组件程序
 
to SeaSky:
果然可行,簡單多了,問一下,設定最高有無其他的改變?

to pcsunflower:
不行耶,設置完後,按一下 Run ,畫面就閃一下,設置中斷點也不會停止,還有,
要如何從 Delphi 呼叫 explorer ?
從 explorer 瀏覽站台 http://localhost/xxx/test.asp ,也不會停在中斷點呀!

------- 我的 asp 指令 --------
Set DelphiASPObj = Server.CreateObject("JASPChineseTrans.ASPJChineseTranslate")

response.write "簡繁互轉!!<p>"
response.write DelphiASPObj.BIG52GBK("簡繁互轉!!<p>")
response.write DelphiASPObj.GBK2BIG5("簡繁互轉!!<p>")
response.write DelphiASPObj.UnicodeToOem("簡繁互轉!!<p>", 936)
 
winnt在控制面板/服务,win2000的话,在管理工具/服务
找到最下面的World Wide Web服务,关闭、启动就可以了
 
最简单的方法:在默认web站点->属性->主目录->配置,将“缓存isapi应用程序”的勾去掉
就行了
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=724772
问题:老生常谈:如何调试dll
 
停掉www服务
很快的,不用10秒就行
 
to wangxd:
不行,還是暫存中。

目前最簡單的方法還是 SeaSky 的,設成最高,然後在 mmc 中停掉 www 站台,再重啟即可。
 
顶部