我尝试通过VS2017中的Publish上下文菜单将我的.net核心站点部署到Azure,偶尔(大约1/3部署),我收到以下错误。
Web部署任务失败。 (Web Deploy无法修改该文件 'MyCoreWebSite.dll'在目的地上,因为它被一个锁定 外部过程。为了让发布操作成功, 您可能需要重新启动应用程序以释放锁定, 或者在下一个使用.Net应用程序的AppOffline规则处理程序 发布尝试。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE。)
然后我会真的等一下,再试一次它会起作用。同时,我将运行handle实用程序寻找锁定DLL的任何东西,它永远找不到任何东西。
这是一个错误还是我错过了一些简单的东西?
答案 0 :(得分:5)
ASP.NET核心不支持卷影复制文件,这意味着ASP.NET Core进程(Kestrel)将对这些文件保持锁定。你可以解决这个问题:
app_offline.htm
页面,然后将其删除。我认为在发布配置文件(<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
)中有自动支持。但是如果需要,您可以使用自定义部署脚本执行此操作。在ASP.NET Core 1.x中,我还要在Startup.cs文件中添加一个文件监视任务来关闭当前进程。我不知道ASP.NET Core 2.0是否仍然需要它。\PREVIOUS
),请更改web.config中的标记,使其指向.exe in新的子目录。现在,根目录中的所有锁都应该消失了......发布您的站点并在之后再次更改web.config。