为什么.net core发布IIS会进程占用,而.net framework不会
感谢各位的回答,但是我的问题是想知道【为什么.net core会占用, .net framework不会占用】
关于.net core发布IIS进程占用的解决方案我已知晓(停止应用程序池/app_offline.html )
IIS占用是应该的,因为可能有正在处理的请求以及预热的缓存。.net framework有时候也会占用的,只是你如果没有请求的时候,会关掉,他们之间配合得好,因为.net framework你可以理解为每次请求完都关掉了,不提供应用本身的上下文,它的上下文都有iis里面,由iis维护。但是.net core并不是,.net core里面你用的di之类的,都有上下文的,程序不能说关就关,所以,其一直在进程 里面,替换文件时当然不行。你可以在目录下放置一个文件,其名字为 app_offline.htm 时,iis会自动关掉对.net core的占用,此时替换文件,然后再把app_offline.htm改为别的。这也是官方建议的作法。
采用 in-process hosting 也有这个问题吗?
相关链接:
in-process是有这个问题,没用过OutOfProcess。搜的也都是解决方法,就是不知道为什么。能理解有进程占用,但是反而不能理解.net framework为什么没有.....
@复制粘贴机器人: 可能与 kestrel 有关,基于 .net framework 的 asp.net 并没有自己的 web 服务器,用的还是 IIS
每个IIS站点有一个对应的"应用程序池"
你发部站点的时候,要把对应站点的"应用程序池"停止就不会有问题了.
关掉IIS 发布