You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未提前执行iisreset,发布Blazor Server应用到IIS本地文件夹报错

Blazor Server发布本地文件夹时MSB3021文件占用问题

问题现象

每次将Blazor Server应用发布到本地文件夹时,若未提前执行iisreset,就会触发错误提示Publish has encountered an error.。

错误详情

  • tmp文件内容:

12/21/2022 12:00:24 PM System.AggregateException: 发生一个或多个错误。---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失败。请查看输出窗口获取详细信息。--- 内部异常堆栈跟踪结束 ---

---> (内部异常 #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失败。请查看输出窗口获取详细信息。<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失败。请查看输出窗口获取详细信息。

===================

  • 输出窗口核心错误:

Error MSB3021: 无法将文件"...\WebUI\obj\Release\net7.0\PubTmp\Out\WebUi.dll"复制到"...\WebUi.dll"。进程无法访问文件'...\WebUi.dll',因为它正被另一个进程使用。

解决方法

  • 临时应急方案:发布前手动执行iisreset命令,重启IIS释放被占用的文件。
  • 精准释放进程:打开任务管理器,找到占用WebUi.dll的w3wp.exe进程,结束对应进程后再执行发布操作。
  • 配置发布选项:在项目发布配置中,进入「设置-高级」,勾选「在发布前停止站点」,让发布工具自动释放文件占用。
  • 调整应用池回收策略:将目标应用池的「回收时间间隔」缩短,或开启「空闲超时回收」,降低文件长期被占用的概率。
  • 添加预发布脚本:在项目属性的「生成事件-预发布事件命令行」中添加脚本,自动终止占用进程(需管理员权限):
taskkill /f /im w3wp.exe

内容的提问来源于stack exchange,提问作者buga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:10:28