【问题标题】:Cannot run (or host) application migrated from .NET Core 2.1 to .NET Core 3.0. and changing the port无法运行(或托管)从 .NET Core 2.1 迁移到 .NET Core 3.0 的应用程序。并更改端口
【发布时间】:2020-11-18 18:35:27
【问题描述】:

我正在尝试将我的应用从 .NET Core 2.1 迁移到 .NET Core 3.0。我已经看过有关这种迁移的 Microsoft 文档,但我也看过 2 或 3 个教程,它们比它短得多,足以迁移应用程序。

我首先将<TargetFramework>netcoreapp2.1 更改为netcoreapp3.0。正如预期的那样,它对所有软件包造成了一些问题,但我通过升级它们或将不推荐使用的方法更改为另一个解决了它。

现在事情变得越来越奇怪了。我尝试运行该应用程序,但出现以下错误:

无法从程序集“Microsoft.AspNetCore.Mvc.Formatters.Json,版本=3.0.0.0”加载类型“Microsoft.AspNetCore.Mvc.MvcJsonOptions”

好的,发生了,这不是我在迁移过程中第一次遇到问题,而且可能不会持续。根据 Stack 上找到的this topic,这是因为 MvcJsonOptions 在 .NET Core 3.0 中已被移除。我试图在我的应用程序中搜索它,但找不到任何代码。猜猜这是一些内部的东西。无论如何,最受好评的解决方案是将 Swashbuckle 更新到 5.0 版,所以我做到了。我的麻烦来了:

  1. 当我尝试运行应用程序时,我得到“无法绑定到地址 http://localhost:5000”。这很奇怪,因为在我刚刚运行这个应用程序之前几分钟,但在 .NET Core 2.1 中它运行得非常好。我已经使用 netstat 检查了端口,并且端口 5000 没有被任何东西使用。我正在使用 IIS Express。
  2. 当我更改主机时,我根本无法运行应用程序。它只是永远加载。我设置了一些断点,但一切看起来都很好——它只是遍历了Startup.cs 中的所有代码,但随后它会无限加载。似乎更糟糕的是,我尝试在我的应用程序的另一个副本上更改端口,然后将其迁移到 .NET Core 3.0,它工作得非常好。只需更改 appsettings.jsonlaunchsettings.json 中的数字即可。

总之,我的应用程序在将其迁移到 .NET Core 3.0 后无法绑定到我的标准地址,当我更改它时,发生了一些非常奇怪的事情并且它无限加载。有什么想法吗?

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core iis-express


    【解决方案1】:

    MvcJsonOptions 已在 .net core 3.0 中删除。尝试安装 Newtonsoft.Json NuGet 包并构建您的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多