加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 混淆:ASP.NET Core 2不是托管代码,但ASP.Net Core Runtim

发布时间:2020-12-15 23:50:33 所属栏目:百科 来源:网络整理
导读:关于Apppool中IIS中的Microsoft文档 here,我们可以为ASP.NET Core 2应用程序设置“Not managed code”,因为ASP.NET Core 2应用程序不需要CLR: 这让我们感到困惑,因为有一个下载页面提供了下载’.NET Core Runtime 2.0.6’的链接:https://www.microsoft.com
关于Apppool中IIS中的Microsoft文档 here,我们可以为ASP.NET Core 2应用程序设置“Not managed code”,因为ASP.NET Core 2应用程序不需要CLR:

enter image description here

这让我们感到困惑,因为有一个下载页面提供了下载’.NET Core Runtime 2.0.6’的链接:https://www.microsoft.com/net/download/all

当ASP.NET Core 2不是托管代码时,为什么运行时可以下载?

解决方法

IIS上的Asp.net核心作为反向代理运行.这意味着:

> Asp.net核心运行在一个单独的过程中.该进程运行单独的独立Web服务器(通常是Kestrel),绑定到本地环回接口上的某个动态端口.例如,它可能会侦听“localhost:3434”.
> IIS知道该进程(它在哪个端口上侦听,如何启动它),以及当IIS收到请求时 – 它将该请求代理到在单独进程中运行的asp.net核心本地Web服务器.

这意味着不需要在IIS托管池中运行CLR,因为实际的asp.net核心不在IIS应用程序池进程中运行.

当然,asp.net核心进程本身需要托管运行时,但它可以加载此运行时本身,而无需IIS的任何帮助.

更新:如评论中所述,ASP.NET 2.1的下一版本将介绍IIS中托管的asp.net核心的进程内模型.在这种情况下,asp.net核心代码实际上将在IIS应用程序池中运行.但是,即使在这种情况下,应用程序池.NET CLR版本也应保留为“无托管代码”,因为?asp.net核心IIS模块将加载.NET Core CLR本身,无需IIS干预.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读