【发布时间】:2018-09-14 14:25:15
【问题描述】:
我的网站设置在D:\RW_System\RW_Webroot\BrokerOffice.Admin 文件夹中(截图如下)。这是一个 .NET、C# WebForms 应用程序。
无论出于何种原因,当我想将更改部署到站点时,我尝试将文件复制过来,但 IIS 将 DLL 锁定在站点设置的路径中:
C:\Users\rizzo\Desktop>handle64 hiqpdf
Nthandle v4.11 - Handle viewer
Copyright (C) 1997-2017 Mark Russinovich
Sysinternals - www.sysinternals.com
w3wp.exe pid: 3700 type: File 2954: D:\RW_System\RW_Webroot\BrokerOffice.Admin\bin\HiQPdf.dll
锁定的不仅仅是那个 .dll - 它是 \bin 文件夹中的所有 DLL。我的理解是 IIS 将所有内容复制到 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\ 下的文件夹并从那里执行。
我在盒子上有许多其他站点,其中包含多个 DLL 引用,正如预期的那样,w3wp.exe 将它们锁定在 Temporary ASP.NET Files 文件夹中。
IIS 或我的代码中是否有设置导致 IIS 锁定 /bin 文件夹中的 DLL?
【问题讨论】:
-
@mjwills 所有引用的 DLL 都会出现问题。我认为它们已被锁定,因为我无法覆盖它们。而且,我运行的
handle命令(见问题)显示 w3wp.exe 已锁定 hiqpdf.dll。 -
问题是否只出现在使用
HiQPdf.dll的网站上? 您提到它没有出现在您的某些网站中。他们在使用那个 DLL 吗? -
@mjwills 哦,我明白你在说什么。其他网站确实使用 HiQPdf.dll,但他们将其锁定在
Temporary ASP.NET Files文件夹中。这是handle命令的完整输出:i.imgur.com/EQRKCaz.png
标签: c# .net iis windows-server-2016