博主『SCscHero』
请选择金额
【5角】
【1元】
【2元】
【闪存】
【首页精华】
【小组】
【新闻】
【博问】
【收藏】
【招聘】
【文库】
【随便看看】
【班级】
【添加新随笔】
【随笔管理】
【文章管理】
【日记管理】
【评论管理】
【标签管理】
【链接管理】
【相册管理】
【文件管理】
【设置】
【选项】
公告板
每一个伟大的成功,都有一个微不足道的开始。
博客速览
.NET Core15
.NET MVC3
.NET SDK3
.NET/C#28
C#8
CLI1
Gateway1
GIT6
Java6
Javac2
Javascript3
Linux4
MongoDB1
MSSQL40
NoSql1
Office8
PC技术16
Psftp1
Putty1
Python7
VBA5
VCS2
Visual Studio5
VSCode2
Vue1
WCF1
WIKI2
Word1
测试5
后端架构设计2
技能Get17
排坑系列3
前端6
生产力提升2
通用技术11
微服务3
英语自然语言1
运维9
正则表达式1
2024年11月(2)
2024年9月(1)
2022年6月(7)
2022年5月(9)
2022年4月(3)
2022年3月(6)
2022年2月(8)
2022年1月(19)
2021年12月(6)
2021年8月(20)
2021年7月(32)
2021年6月(5)
2021年5月(22)
2021年4月(5)
2021年3月(9)
2021年2月(2)
2020年12月(2)
2020年9月(4)
2020年6月(3)
2020年3月(2)
更多
Sql Server33
NodeJs2
Npm1
英语口语句子1
MSSQL33
JMeter2
MSSQL进阶1
应用程序池1
数据库16
Javac2
Maven1
向日葵远程工具1
.Net/C#10
Aspose2
Log4J1
微信1
GIT9
asp.net2
JS1
数据同步1
Visual Studio7
人工智能2
Javascript1
清理电脑1
Python7
全局设计2
Iphone兼容性问题1
前端调试1
Java7
排坑2
Intellij-idea1
前端1
.Net6
技能Get2
IDEA1
浏览器调试技巧1
Windows105
环境搭建2
html2canvas1
浏览器1
Linux5
测试工具2
HP笔记本1
开发语言1
IIS5
编码2
Excel1
开发技巧1
GitHub5
办公自动化2
Entity Framework1
开发工具1
运维5
Word通配符1
database1
惠普笔电1
调试技巧5
Word个性化1
cshtml1
后端1
WCF4
web.config1
consul1
高效办公1
VBA4
VS20221
CLI1
高并发测试1
VS3
VisualStudio1
Blazor1
服务器1
MSSQL基础3
VCS1
BIOS1
单元测试1
Microsoft3
Unicode1
Base641
大数据处理1
异常处理3
tcp/ip1
Aspose.Cells1
打印技巧1
.NetCore3
sqlcmd1
ABP_CLI1
7z1
.Net启动配置3
Sklearn1
ABP1
.Net异常1
Word VBA2
Scala1
注册中心1
.Net部署配置1
Word2
razor1
正则表达式1
.NET SDK1
Windows2
Putty1
远程控制1
.Net FW1
Vue2
Psftp1
有道词典1
.getignore1
VSCode2
Powershell1
游戏技巧1
.cab1
VBA基础2
postman1
油猴1
PC技术2
OwinStartup1
硬件1
Office2
OFFICE宏1
英语自然语言1
博主主页
博客园主页
BiliBili主页
GitHub主页
Weibo主页
CSDN主页
SC2主页
管理
RSS
私信
0浏览0评论.NET Core.NET/C#
首页/.NetCore程序寄托于IIS部署时提示:进程无法访问该文件,因为它正在被其他进程使用。分享:
阅文时长 | 0.55分钟 字数统计 | 884.8字符
主要内容 | 1、引言&背景 2、解决详细步骤 3、声明与参考资料
『.NetCore程序寄托于IIS部署时提示:进程无法访问该文件,因为它正在被其他进程使用。』
编写人 | SCscHero 编写时间 | 2022/2/17 PM9:42
文章类型 | 系列 完成度 | 已完成
座右铭 每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题

.NetCore程序寄托于IIS部署时提示:进程无法访问该文件,因为它正在被其他进程使用。如图,博主是英文版的WindowsServer系统,提示:The process cannot access the file because it is being used by another process.

b) 环境说明

  • .NetCore2.2开发框架
  • Internet Information Services(Version 8.5.9600.16384)
  • Windows Server 2012 R2

二、解决详细步骤   完成度:100%

a) 常规步骤

先说常规的步骤,能解决大多数时候的问题:一般报文件使用于另外的进程,我们第一反应就是停服务、停App pool中的App。PS:如果不想通过停服务来部署,那么可以通过设置web.config中的aspNetCore的hostingModel属性,如果值是InProcess则为进程内托管,修改为"OutOfProcess"则为进程外托管,可以尝试热部署。

xml<aspNetCore processPath="dotnet" arguments=".\AppName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess"/>

更多参数可参阅三章节的官方文档。

b) 其他Case

但如果常规步骤无法解决此问题,即服务停了,应用程序池应用也关了,还是报文件占用,且不知道是什么进程占用了,又没法重启服务器。那么以下步骤可能有用:

  1. 备份一下旧文件,然后快捷键DELETE删除。这时候Windows(英文版)会提示The action can't be completed because the file is open in [XXXXX]。比如如图,博主的dll文件就被进程IIS Worker Process使用了。
  1. 那么知道了是被什么进程使用了,我们则到任务管理器查看进程List,如图:博主的情况比较复杂,因为服务器上跑了多个IIS服务,且是多用户的。因此需要查看各个用户的进程,以及判断多个IIS Worker Process中哪个是我们部署服务的进程。这里教大家一招:默认的任务管理器是不会展示命令行(Command line)的列的,需要手动右击Title调出来。通过命令行-ap参数后的AppName,我们可以知道是哪个进程锁住了。然后End Task即可。

三、声明与参考资料   完成度:100%

微软官方文档:关于web.config的配置文件说明

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。

发表评论
  • 贴吧表情
  • QQ高清
  • emoji高清
发表评论修改评论
还没有人评论呢,快来发一条评论吧~
点击右上角即可分享
微信分享提示