IIS和ASP.NET正在锁定我的PInvoke dll

IIS和ASP.NET正在锁定我的PInvoke dll,asp.net,iis-7,pinvoke,Asp.net,Iis 7,Pinvoke,我有一个ASP.NETMVC网站,它为一些PInvoke的东西使用了一个内部dll。dll位于其他程序集旁边的/bin文件夹中。这很好,但是如果我想通过复制到现有文件(在测试服务器上)来用最新的文件集替换/bin文件夹的内容,PInvoke dll将被w3wp.exe工作进程锁定/使用,除非在回收应用程序池或重新启动IIS之后,否则无法替换 这是标准行为,还是我可以指示ASP.NET运行时采用类似于常规程序集的PInvoke dll的卷影副本?好的,如果IIS具有dll句柄,您将无法替换dll

我有一个ASP.NETMVC网站,它为一些PInvoke的东西使用了一个内部dll。dll位于其他程序集旁边的/bin文件夹中。这很好,但是如果我想通过复制到现有文件(在测试服务器上)来用最新的文件集替换/bin文件夹的内容,PInvoke dll将被w3wp.exe工作进程锁定/使用,除非在回收应用程序池或重新启动IIS之后,否则无法替换


这是标准行为,还是我可以指示ASP.NET运行时采用类似于常规程序集的PInvoke dll的卷影副本?

好的,如果IIS具有dll句柄,您将无法替换dll

您提到了APPPool回收和IIS重新启动


我猜您可能没有接触过web.config文件。我的意思是,在记事本中打开web.config,进行更改[比如添加一个空间并删除它],然后保存文件。这将回收您的应用程序域,因此理想情况下应该发布程序集引用[除非它是共享程序集]。

我在编辑web.config时注意到回收,我只是有点惊讶,我无法复制和替换PInvoke dll,就像普通的.NET程序集一样,我正在寻找一些更深入的知识,了解如何可能指示IIS/w3wp不要硬处理该文件。