我使用ATL开发ASP中使用CreateObject调用的组件,每次编译注册dll以后,使用ASP程序调用功能,如果发现错误,需要修改DLL源代码,修改编译发现不能打开原来生成的DLL文件,必须重新启动机器才可以,每次修改都要重新启动机器,太麻烦了,谁能告诉我不用重新启动机器就可以更新注册的DLL的解决方法!
希望大家帮帮我!

解决方案 »

  1.   

    重新启动 IIS admin 就行了
      

  2.   

    重新启动IIS admin当然可以,不过就是太慢了。
    在IIS管理器中右击你的网站,选属性菜单 -》 主目录属性页 -》点击 配置(G)按钮
    弹出应用程序配置对话框, 在映射属性页(第一个属性页中)有缓存ISAPI应用程序的复选框。
    取消选择就可以不缓存ISAPI的DLL了,不过要重启IIS (IIS admin服务)后才生效,以后这个网站的ISAPI的DLL就可以随时修改了。
    祝你好运!
      

  3.   

    我试了一下,还是不行,还是提示我有一个进程已经打开了我的dll文件,所以不能编译,我想查看了进程,多了两个“dllhost”进程,我想关闭这两个进程,但是不能关闭,这是什么原因呢?
      

  4.   

    我帮你在MSDN中搜了一下,有个问题一模一样,楼主自己看看吧(在搜索中输入Q166279),意思就是要先将Web站点(只是站点)关掉,编译完后再打开。
    如果楼主觉得麻烦,可以使用编译事件,那就可以不用自己去开关站点了
      

  5.   

    IIS cache the COM object in memory.
    you can seperate it into another process,
    http://support.microsoft.com/?scid=kb;EN-US;Q281335
    and kill dllhost.exe when you cant update the dll.
      

  6.   

    我怎么不能KILL dllhost.exe啊,如何才能杀掉?
      

  7.   

    设置你的项目在创建链接项目事件中执行
    net stop iisadmin.
    链接后事件设置成
    net start iisadmin
    让编译器自动执行
      

  8.   

    To:microran2000(什么时候才能看到星星?) 在那里设置啊?
      

  9.   

    重新启动 IIS admin,或者象microran2000(什么时候才能看到星星?) 说得那样设置即可。在Project Settings -> Pre_link Step 和 Post build step两个属性页里面设置!
      

  10.   

    不需要重起IIS,在你的Internet服务器管理器的你的应用程序属性对话框中有一个应用程序的“卸载”按扭,在编译之前先卸载掉应用程序就可以了,比较快的