.net 发布时,站点DLL似乎间歇性锁定
我尝试通过VS2017中的发布上下文菜单将我的.net核心站点部署到Azure,偶尔(大约三分之一的部署)会出现以下错误 Web部署任务失败。(Web部署无法修改该文件 目标上的“MyCoreWebSite.dll”,因为它已被 外部进程。为了使发布操作成功, 您可能需要重新启动应用程序以释放锁, 或者在下一个应用程序上使用.Net应用程序的AppOffline规则处理程序 发布尝试。有关详细信息,请访问: ) 然后我会等一分钟,再试一次,它会工作的。同时,我将运行该实用程序查找锁定DLL的任何内容,但它从未找到任何内容.net 发布时,站点DLL似乎间歇性锁定,.net,asp.net-core,.net-core,visual-studio-2017,webdeploy,.net,Asp.net Core,.net Core,Visual Studio 2017,Webdeploy,我尝试通过VS2017中的发布上下文菜单将我的.net核心站点部署到Azure,偶尔(大约三分之一的部署)会出现以下错误 Web部署任务失败。(Web部署无法修改该文件 目标上的“MyCoreWebSite.dll”,因为它已被 外部进程。为了使发布操作成功, 您可能需要重新启动应用程序以释放锁, 或者在下一个应用程序上使用.Net应用程序的AppOffline规则处理程序 发布尝试。有关详细信息,请访问: ) 然后我会等一分钟,再试一次,它会工作的。同时,我将运行该实用程序查找锁定DLL的任何
这是一个bug还是我遗漏了一些简单的东西?ASP.NET core不支持文件的卷影复制,这意味着ASP.NET core进程(Kestrel)将对这些文件保持锁定。您可以解决以下问题:
app_offline.htm
页面,然后将其删除。我认为在发布配置文件(true
)中自动支持这一点。但如果需要,可以使用自定义部署脚本来完成。在ASP.NET Core 1.x中,我还必须在Startup.cs文件中添加一个文件监视任务来关闭当前进程。我不知道ASP.NET Core 2.0是否还需要它\PREVIOUS
),请更改web.config中的标记,使其指向新子目录中的.exe。现在,根目录中的所有锁都应该消失了。。。发布您的网站,然后再次更改web.config