编译DLL碰到的问题。(200分)

  • 主题发起人 主题发起人 ericmm
  • 开始时间 开始时间
E

ericmm

Unregistered / Unconfirmed
GUEST, unregistred user!
我做一个DLL给ASP用,编译注册,ASP调用后,做了一些修改,想修改一下原码,再编译,
老是说原来的文件无法覆盖,原有的DLL也无法删除,删了注册表里面的东西,关闭IIS,
情况还是一样。
只有重启机器后才能再次编译覆盖原有的DLL,请问有没有碰到过这种情况,是如何解决
的?谢谢!

奉上200分!
 
确实存在该问题,因为该DLL使用后,就调入内存一直使用,所以不能删除,不能覆盖。
 
那我该如何从内存中删除呢?
 
通过杀掉进程的方式好像可以解决。不知道有没有其他的方法?
 
重新启动一遍计算机,然后就可以重新修改并编译。
 
IIS中有个选项可以设置,在WEB站点-〉属性-〉主目录-〉配置-〉应用程序-〉缓存ISAPI程序打上勾。
 
同意TYZhang
其实你在Microsoft站点上搜索一下就能找到答案的。
 
重新启动太麻烦了。
已经找到办法了,谢谢各位。
用过vb,delphi,vc,和vj写过dll,每次都会碰到这样的问题,现在好了,可以解决了。
唉,自己学的太浅了。

顺便问一下。用jdbc-odbc桥连接access数据库应该如何写,我准备写在dll里面。但是
一直catch到ClassNotFoundException错误。我的代码是这样:
url是odbc数据源名。
String dbName = "jdbc:odbc:url";
Connection oConn;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
oConn = DriverManager.getConnection(dbName);
}
catch(ClassNotFoundException e)
{
throw new SQLException(e.getMessage());
}
 
假如真是楼上所说的那样的dll ,
建议进入WIN98 或 2K 的“安全模式”将其删除 , 试试 [:D]
 
To TYZhang:
缓存ISAPI程序已经打上勾了!:S
情况也是这样。
 
To jrq:
进入安全模式其实已经是把内存清空了:)
 
因为该DLL使用后,就调入内存一直使用,除非重新启动!
 
[:)] 你不是想把他删掉吗?
在“安全模式”下删了不就成了吗?
不过这样比较麻烦 呵呵
 
不用重新启动的,如果每次要重新启动不是要被烦死?
下面这篇文章有详细的操作步骤,你看看吧:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q315663
 
注销一下试试?
 
你自己没有释放该dll,当然他没办法编译了。必须掉才行,因为你在浏览器里调用的dll而浏览器除非你退出
了系统平台才可以。相当于你将explorer.exe关闭了,或者是iexplor.exe关闭了.
 
纠正一下, 是IIS,而不是浏览器或其他没释放DLL。
所以注销什么的是不起作用的。 [:)]
 
这样处理你看行不行(我以前就是这样处理的)
你打开iis,后你看到你的机器名,点右键,选择重启iis,即可,不用重启机器
 
To xianjun:
相当有用的一篇文章,虽说老了点,接受你的答案了。
 
后退
顶部