首页 > 解决方案 > 如何在不停止 iis 的情况下将 ASP.NET Core 发布到服务器(错误:该进程无法访问该文件,因为它正在被另一个进程使用)

问题描述

当我们发布我们的 ASP.NET Core 应用程序并上传到服务器时,我们得到一个错误:

该进程无法访问该文件,因为它正被另一个进程使用。

而当停止 iis 不是错误。如何在不停止 IIS 的情况下上传?

标签: asp.net-corepublish

解决方案


如果您使用 Web 部署推送到您拥有的 IIS(位于数据中心的机器),您可以尝试回收您尝试重新部署的 Web 应用程序使用的 AppPool。

  • 转到您的 IIS 管理控制台
  • 右键单击有问题的 AppPool
  • 选择回收选项

请注意,这也会“重新启动”与此 AppPool 关联的所有其他应用程序。

这在大多数情况下“应该”起作用。

如果您部署到 Azure,您可能会考虑完全使用 Linux 应用服务或某些 Docker 部署机制。据我所知,在这些情况下,您不能使用进程内 IIS ASP.NET Core 模块,但至少部署不会随机失败。


推荐阅读