通过


ASP.NET Core 5 中的重大变更

如果要将应用迁移到 ASP.NET Core 5,此处列出的重大更改可能会影响你。 更改按技术领域分组,例如 ASP.NET 核心或加密。

本文指出每个中断性变更是二进制兼容还是源兼容:

  • 二进制兼容 - 现有二进制文件将在不重新编译的情况下成功加载和执行,并且运行时行为不会更改。
  • 源代码兼容 - 当面向新运行时或使用新的 SDK 或组件时,源代码将成功编译,而不会发生更改。
Title 二进制兼容 源代码兼容
ASP.NET Core 应用程序将带引号的数字反序列化 ✔️
AzureAD.UI 和 AzureADB2C.UI API 已过时 ✔️
BinaryFormatter 序列化方法已过时 ✔️
终结点路由中的资源为 HttpContext ✔️
已删除带有 Microsoft 前缀的 Azure 集成包 ✔️
Blazor:应用中路由优先级逻辑已更改Blazor ✔️
Blazor:更新的浏览器支持 ✔️ ✔️
Blazor:编译器去除的无关紧要的空白 ✔️
Blazor:JSObjectReference 和 JSInProcessObjectReference 类型为内部类型 ✔️
Blazor:NuGet 包的目标框架已更改 ✔️
Blazor:ProtectedBrowserStorage 功能已移动到共享框架 ✔️
Blazor:RenderTreeFrame 只读的公共字段现在改为属性 ✔️
Blazor:更新了静态 Web 资产的验证逻辑 ✔️
浏览器不支持加密 API ✔️
扩展:包引用更改 ✔️
Kestrel 和 IIS BadHttpRequestException 类型已过时 ✔️
IHttpClientFactory 创建的 HttpClient 实例会记录整数状态代码 ✔️
HttpSys:默认情况下禁用客户端证书重新协商 ✔️
IIS:保留 UrlRewrite 中间件查询字符串 ✔️
Kestrel:默认情况下检测到的配置更改 ✔️
Kestrel:默认支持的 TLS 协议版本已更改 ✔️
Kestrel:在不兼容的 Windows 版本上通过 TLS 禁用 HTTP/2 ✔️ ✔️
Kestrel:Libuv 传输已标记为过时 ✔️
ConsoleLoggerOptions 上的过时属性 ✔️
ResourceManagerWithCultureStringLocalizer 类和 WithCulture 接口成员已删除 ✔️
已删除 Pubternal API ✔️
请求本地化中间件中删除了过时的构造函数 ✔️
中间件:数据库错误页标记为已过时 ✔️
异常处理程序中间件引发原始异常 ✔️ ✔️
ObjectModelValidator 调用验证的新重载 ✔️
Cookie 已删除名称编码 ✔️
更新了 IdentityModel NuGet 包版本 ✔️
SignalR:MessagePack 中心协议选项类型已更改 ✔️
SignalR:MessagePack 中心协议已移动 ✔️
UseSignalR 和 UseConnections 方法已删除 ✔️
CSV 内容类型更改为符合标准的 ✔️