【问题标题】:IIS and ASP.NET is locking my PInvoke dllIIS 和 ASP.NET 正在锁定我的 PInvoke dll
【发布时间】:2011-05-08 12:49:38
【问题描述】:

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

这是标准行为还是我可以以某种方式指示 ASP.NET 运行时获取类似于常规程序集的 PInvoke dll 的卷影副本?

【问题讨论】:

    标签: asp.net iis-7 pinvoke


    【解决方案1】:

    AFAIK,如果 IIS 有 DLL 的句柄,您将无法替换 DLL。

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

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

    【讨论】:

    • 我在编辑 web.config 时知道回收利用,我只是很惊讶我无法像常规 .NET 程序集一样复制替换 PInvoke dll 并且正在寻找更多深入了解如何可能指示 IIS/w3wp 不对文件进行硬处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多