无法运行(或托管)从.NET Core 2.1迁移到.NET Core 3.0的应用程序。并更改端口

时间:2020-07-29 08:03:59

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

我正在尝试将我的应用程序从.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后无法绑定到我的标准地址,并且当我对其进行更改时,发生了非常奇怪的事情,并且无限加载。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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