2020年11月23日星期一

ASP.NET Core 3 起架设在 Windows IIS 方式改变

最近要升级 windows 服务器的 ASP.NET Core 2.1 专案到 3.1 版本,发现 Windows 架设在 IIS 上面的方式有所改变。

一. 除了反向代理外,从 ASP.NET Core 3.0 起内建对 IIS in-process-hosting 预设支持(参考),可以不需要把 IIS Pool CLR 版本改为没有 Managed 程序码(请参考),只能依赖 kestrel server 运行 web 引擎。

现在可以去除 kestrel 代表说,它避免IIS 和 Kestrel 之间的额外网路传递,提供更好的性能,照官方说法占用资源也会减少,相关效能测试可以参考(Rick Strahl文章)

这对跟我一样,必须沿用 windows 主机无法替换 Linux 情况是一个好消息!

二. 注意 IIS In-process hosting 每个 app 需要建立一个专门的 pool
没办法像 asp.net mvc 一样,可以多个应用使用同一个 pool 管理。

这点可以参考我在 S.O 发问Brando Zhang 的回答:

Sharing an app pool among apps isn't supported. Use one app pool per app.

否则会出现错误 HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process

三. 虽然 ASP.NET Core 3.1 可以跟 Runtime 环境一起打包成单一执行档(self-contained single file),但遗憾,只对 kestrel server 有效,没有安装 Runtime 的 IIS Server 还是需要安装 Hosting Bundle

没办法像 .net core console 丢一个执行档,别人就能开箱即用的效果。

图片:在没有安装 asp.net core runtime 的 server ,运行 self-contained runtime 的 kestrel core app

图片:同样文件运行在 IIS 会报 500.19 错误









原文转载:http://www.shaoqun.com/a/492884.html

淘粉8:https://www.ikjzd.com/w/1725

燕文物流:https://www.ikjzd.com/w/2229

新单:https://www.ikjzd.com/w/79


最近要升级windows服务器的ASP.NETCore2.1专案到3.1版本,发现Windows架设在IIS上面的方式有所改变。一.除了反向代理外,从ASP.NETCore3.0起内建对IISin-process-hosting预设支持(参考),可以不需要把IISPoolCLR版本改为没有Managed程序码(请参考),只能依赖kestrelserver运行web引擎。现在可以去除kestrel代
张洁:张洁
naver:naver
亚马逊卖家账号申请遇到二审有什么东西需要注意的?亚马逊欧洲站三审是怎么回事?:亚马逊卖家账号申请遇到二审有什么东西需要注意的?亚马逊欧洲站三审是怎么回事?
最新消息!Amazon这些新政将在7月实行:最新消息!Amazon这些新政将在7月实行
2020年端午节放几天假?2020年端午节放假怎么安排的?:2020年端午节放几天假?2020年端午节放假怎么安排的?

没有评论:

发表评论