发布时站点 DLL 似乎间歇性锁定

2023-11-22

我尝试通过 VS2017 中的“发布”上下文菜单将我的 .net core 站点部署到 Azure,偶尔(大约三分之一的部署)我会收到以下错误。

Web 部署任务失败。 (Web Deploy无法修改该文件 目标上的“MyCoreWebSite.dll”,因为它被锁定 外部过程。为了让发布操作成功, 您可能需要重新启动应用程序才能释放锁定, 或者在您的下一个 .Net 应用程序中使用 AppOffline 规则处理程序 发布尝试。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.)

然后我会等一下,再试一次,它就会起作用。同时,我将运行handle实用程序正在寻找锁定 DLL 的任何内容,但从未找到任何内容。

这是一个错误还是我错过了一些简单的事情?


ASP.NET 核心确实不支持卷影复制文件,这意味着 ASP.NET Core 进程 (Kestrel) 将保持对这些文件的锁定。您可以解决这个问题:

  1. 提供一个app_offline.htm发布前的页面并在发布后将其删除。我认为发布配置文件中有对此的自动支持(<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>)。但如果需要,您可以使用自定义部署脚本来完成此操作。在 ASP.NET Core 1.x 中,我还必须在 Startup.cs 文件中添加一个文件监视任务来关闭当前进程。我不知道ASP.NET Core 2.0是否还需要它。
  2. 1. 的缺点是您的网站在发布期间将处于离线状态。如果您不希望使用站点的副本:将所有文件复制到子目录(例如\PREVIOUS),更改 web.config 中的标记,使其指向新子目录中的 .exe。现在根目录中的所有锁都应该消失了...发布您的站点并随后再次更改 web.config。
  3. 如果您的网站是负载平衡的,您当然可以从池中取出一台服务器,更新它并在完成后将其添加回池中。

更多信息

https://devblogs.microsoft.com/dotnet/web-publishing-updates-for-app-offline-and-usechecksum/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发布时站点 DLL 似乎间歇性锁定 的相关文章

随机推荐

  • for-in JavaScript 语句中的 IE8 错误?

    我想我在 IE IE8 处理 for in javascript 语句时发现了一个错误 经过几个小时将其归结为一个小示例后 看起来 IE 专门跳过了 for in 循环中名为 toString 的任何属性 无论它是在原型中还是对象的 自己的
  • MVC4 Action 返回不带 null 的 JsonResult

    我有一个为特定类的对象返回 JsonResult 的操作 我用一些属性装饰了这个类的属性以避免空字段 类的定义是 private class GanttEvent public String name get set JsonPropert
  • 如何使用 Python ElementTree 创建

    我尝试使用这个问题的答案 但无法使其工作 如何用Python的ElementTree创建 虚拟根 这是我的代码 import xml etree cElementTree as ElementTree from StringIO impor
  • 如何在 Laravel 中对对象数组进行分页?

    我正在使用 Laravel 4 2 构建一个应用程序 我有一个模型units另一个用于users和数据透视表user units 该应用程序中的每个用户都可以选择一个单元并将其添加到他最喜欢的列表中 然后他可以将该单元及其信息作为广告发布
  • 以编程方式获取 DLL 的版本号

    是否可以通过编程方式从任何 NET DLL 获取版本号 如果是 怎么办 如果 dll 是这样的话 这有效 net or Win32 仅当 dll 为 net 时 反射方法才有效 另外 如果使用反射 则需要将整个 dll 加载到内存中 以下方
  • 如何使用 C# 检查程序安装位置

    我需要通过程序名称 出现在 添加或删除程序 中的名称 检查程序的安装位置 使它适用于所有语言的最佳方法是什么 查看注册表 HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersio
  • 无法在c#中运行Google Cloud PubSub,DLL问题

    我正在努力将 Google Cloud PubSub 集成到我的 c 项目中 我使用 NuGet 进行安装1 0 0 beta11 完全没有错误 当我运行我的项目并到达使用 pubsub 的代码时 出现以下错误 An unhandled e
  • 使用 firestore 进行多查询和分页

    我正在尝试使用 firestore 实现多查询和分页 但是一旦我将 添加到查询中 光标就不起作用 working example the doc id i save as propery on the doc ref where categ
  • 跨平台命令行脚本(例如.bat和.sh)

    我注意到 Windows 7 可以像执行 bat 文件一样执行 sh 文件 这让我想知道是否可以编写一个 sh 文件以便可以在 Windows 中执行andLinux 比如说bash 我首先想到的是编写一个 if 语句 以便 Windows
  • 建造者设计模式和工厂设计模式有什么区别? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 Builder设计模式和Factory设计模式有什么区别 哪一种更有优势 为什么 如果我想测试和比较 对比这些模式 如何将我的发现表示为图表 对于设计模式 通常没有适用于所有情况
  • Sn.exe 中自动输入密码

    我需要创建构建后事件来执行以下操作 sn i MyKey pfx MyKeyContainerName tlbimp ConfigurationName MyCom tlb out ConfigurationName NETMyCom dl
  • 我应该如何表示带有附加信息注释的 AST?

    假设我有一个用某种语言表示 AST 的简单数据类型 data Term Var String Num Integer Expr Term 实际上 它显然会有比这更多的构造函数 我可以用它来编写一个与 AST 结构匹配的简单评估函数 eval
  • 列出窗口对象的所有属性?

    我希望 动态 获取浏览器当前识别的 HTML 元素列表 例如HTMLPreElement HTMLSpanElement等等 这些对象是全局的 即 console log HTMLPreElement in window gt true 所
  • WOFF 字体,它们是什么以及我为什么要关心?

    所以 Mozilla 提出了一种新的网络字体 我不太喜欢那个世界 但我想让自己保持最新状态 那么 既然连微软都支持它 那么伟大的事情是什么 为什么我作为一个网络开发者应该关心呢 和旧的有什么区别 我们需要另一个字体系统吗 什么情况下应该使用
  • C++:宏可以将“abc”扩展为“a”、“b”、“c”吗?

    我编写了一个可变参数模板 它接受可变数量的char参数 即 template
  • 如何重写 exit(),也许通过抛出异常

    我们有一个第三方库 其编写时没有考虑多线程或异常处理 我们的主要可执行文件是多线程的并使用异常 第三方库使用exit 因严重问题 例如 驱动程序未初始化 或 文件未找到 而中止程序 呼唤exit 在多线程应用程序中是不允许的 因为它不能正确
  • 为什么“内容类型无效”

    尝试更新 Marketo 中潜在客户记录的数据字段 使用C 我发送 action updateOnly input email email protected leadQuality Hot 并返回 requestId d98e 14b2d
  • 使用 Maven 的 JUnit3 和 Junit4 XML 报告

    我试图弄清楚如何将 JUnit 3 和 4 与 Maven 结合使用假定的报告功能 但是 Google 搜索并没有太多关于如何实际运行 JUnit 通过 Maven 的信息 请获取每个测试 或所有测试 的报告及其格式 所以 我的多部分问题是
  • Google Maps API V3:如何显示从A点到B点(蓝线)的方向?

    我的数据库中有 2 个点的纬度和经度 我希望我的 Google 地图显示从 A 点到 B 点的路线 就像我们看到的那样here 谷歌地图路线 如何在地图上绘制该方向线 Use 方向服务Google 地图 API v3 它与 Directio
  • 发布时站点 DLL 似乎间歇性锁定

    我尝试通过 VS2017 中的 发布 上下文菜单将我的 net core 站点部署到 Azure 偶尔 大约三分之一的部署 我会收到以下错误 Web 部署任务失败 Web Deploy无法修改该文件 目标上的 MyCoreWebSite d