.NETFramework技术在.NETCore和.NET5+上不可⽤
应⽤程序域
应⽤程序域 (AppDomain) 可将应⽤相互隔离。AppDomain 需要运⾏时⽀持并且通常价格昂贵。不⽀持创建其他应⽤域,也尚未计划在将来添加此功能。对于代码隔离,将流程或容器⽤作备⽤。若要动态加载程序集,请使⽤AssemblyLoadContext 类。
.NET 5+ 公开了⼀些 AppDomain API 曲⾯,以便可以更轻松地从 .NET Framework 进⾏代码迁移。⼀些 API 可正常⼯作(例如 AppDomain.UnhandledException),⼀些成员不会执⾏任何操作(例如 SetCachePath),也有⼀些会引发PlatformNotSupportedException(例如 CreateDomain)。对照 dotnet/runtime GitHub 存储库中的
System.AppDomain 引⽤源检查所使⽤的类型。确保选择与已实现的版本相匹配的分⽀。
远程处理
进程通信方式.NET 远程处理被认为是存在问题的体系结构。它⽤于在不再受⽀持的应⽤程序域之间进⾏通信。同样,远程处理也需要运⾏时⽀持,进⾏维护的成本较⾼。出于这些原因,.NET Core 和 .NET 5+ 不⽀持 .NET 远程处理,并且我们不计划在将来添加对它的⽀持。
对于跨进程通信,可将进程间通信 (IPC) 机制视为远程处理的备⽤⽅案,如 System.IO.Pipes 类或 MemoryMappedFile 类。
对于跨计算机的通信,可将基于⽹络的解决⽅案⽤作备⽤⽅案。最好使⽤低开销纯⽂本协议,例如 HTTP。此
处,ASP.NET Core 使⽤的 Web 服务器 Kestrel Web 服务器是⼀个选择。也可考虑将 System.Net.Sockets ⽤于基于⽹络的跨计算机的⽅案。有关更多选项,请参阅 .NET 开放源代码开发⼈员项⽬:消息传送。
代码访问安全性 (CAS)
沙盒依赖为托管应⽤程序或库使⽤或运⾏提供资源的运⾏时或框架进⾏限制,其在 .NET Framework 上不受⽀持,因此在 .NET Core 和 .NET 5+ 上也不受⽀持。.NET Framework 和运⾏时中存在太多发⽣特权提升以继续将 CAS 视为安全边界的情况。此外,CAS 使实现更加复杂,通常会对⽆意使⽤它的应⽤程序造成正确性-性能影响。
可使⽤操作系统提供的安全边界,例如虚拟化、容器或具有最少特权集的⽤于运⾏进程的⽤户帐户。
安全透明度
与 CAS 相似,借助安全透明度可以通过声明性⽅式将沙盒代码与安全关键代码隔离,但是不再⽀持将它作为安全边界。Silverlight ⼤规模使⽤了此功能。
可使⽤操作系统提供的安全边界,例如虚拟化、容器或⽤于运⾏进程的⽤户帐户具有最少的⼀组特权。
System.EnterpriseServices
.NET Core 和 .NET 5+ 不⽀持 System.EnterpriseServices (COM+)。
从 .NET Framework 移植到 .NET Core 请参阅
版权申明:本⽂来源于⽹友收集或⽹友提供,如果有侵权,请转告版主或者留⾔,本⽴即删除。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。