gpt4 book ai didi

deployment - 在 app_offline.htm 复制并激活后部署网站时 bin/*.dll 被锁定(影子复制关闭)

转载 作者:行者123 更新时间:2023-12-03 22:42:50 25 4
gpt4 key购买 nike

我在部署网站时遇到问题。卷影副本在之前的部署问题和部署站点后关闭。

特别是在部署时,我发现即使复制了 app_offline.htm并验证站点/应用程序是否脱机,bin/*.dll 中的文件经常被锁。

关闭影子副本后,我仍然希望在 appdomain 时释放 dll 上的锁。已卸载 app_offline.htm外貌。

我试过部署一个临时的 web.configStack Overflow 上找到旨在防止在我尝试删除 bin/ 的内容之前立即获取更改(到 bin/ )
我什至暂停 10s复制新后web.config .

?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpRuntime waitChangeNotification="300"
maxWaitChangeNotification="300"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>

我已经通过 handles util 确认我的应用程序池( w3wp.exe 进程)是 dll 上的锁的持有者,所以我假设这是我无法删除/覆盖文件的原因。如果我手动回收应用程序池,它会释放它,我可以很好地部署。不幸的是,作为部署过程的一部分,复制 app_offline 和更改 web.config 是可能的,但执行 IIS appcmd 回收不是(出于权限/组策略原因)所以我真的需要能够只用 app_offline.htm 来释放这个锁和 web.config。

重新打开卷影副本确实“解决”了这个特定问题,但如果 dll 上仍然持有锁。但是,我想知道/并担心我是否只是推迟了问题。除非在 appdomain 时释放旧 dll 上的锁。又加载了?

复制时 app_offline.htm w3wp进程 ID 不会像硬回收那样改变,但我认为它正在卸载 appdomain这应该释放 bin/ files它已锁定。

另一个有趣的一点是,这似乎只发生在我们的生产服务器上,我无法在本地或我们的开发/临时站点上重新创建它。我不认为 app_pools 有任何配置差异或 IIS config 但这可能会导致这种行为。

还要澄清 shadowCopyBinAssemblies已经设置为 false 超过 3 年没有发生这个问题(相同的部署过程)所以我真的觉得最近发生的事情导致了这个,但我不知道是什么。

感谢您提供有关如何解决此问题甚至可能导致此问题的任何想法。

(我相信服务器是 IIS77.5 )

最佳答案

我遇到了一个类似的问题,即使存在 app_offline.htm,IIS 也锁定了 DLL。
重新启动池解决了问题,但它是手动的。寻找一种自动化的方式。在我的情况下,DLL 是 PDFium.dll,它可能是一个非托管的 dll

关于deployment - 在 app_offline.htm 复制并激活后部署网站时 bin/*.dll 被锁定(影子复制关闭),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17405588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com