如何将 .NET Core 2.2 Web API 迁移到 .NET Core 3.0?

2023-12-10

我正在关注微软的迁移指南,但失败了。因此,我使用 .NET 2.2 创建了一个新项目来建立一个干净的模板,然后尝试迁移到 .NET Core 3.0。但它再次失败了。在里面Startup.cs,依赖注入找不到方法services.AddMvc().

看来我的代码仍然引用 .NET 2.2 而不是 .NET 3.0。

如果我跑dotnet watch run,我收到以下错误:

应用程序启动异常System.InvalidOperationException: 端点路由不支持“IApplicationBuilder.UseMvc(...)”。 使用“IApplicationBuilder.UseMvc”设置 'MvcOptions.EnableEndpointRouting = false' 内 '配置服务(...)。在 Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder 应用程序,操作'1配置路由)位于 Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder 应用程序)在 netmig.Startup.Configure(IApplicationBuilder 应用程序, IHostingEnvironment env) 在 E:\testapp\netmig\Startup.cs:第 46 行 System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[] 参数、签名 sig、布尔构造函数、布尔包装异常) 在 System.Reflection.RuntimeMethodInfo.Invoke(对象 obj,BindingFlags invokeAttr、Binder 绑定器、Object[] 参数、CultureInfo 文化)
在 Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象 实例,IApplicationBuilder 构建器)位于 Microsoft.AspNetCore.Hosting.ConfigureBuilder.c__DisplayClass4_0.b__0(IApplicationBuilder 建设者)在 Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.c__DisplayClass13_0.b__2(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder 建设者)在 Microsoft.AspNetCore.HostFilteringStartupFilter.c__DisplayClass0_0.b__0(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) 未处理的异常。 System.InvalidOperationException:端点路由不支持 'IApplicationBuilder.UseMvc(...)'。使用“IApplicationBuilder.UseMvc” 在里面设置 'MvcOptions.EnableEndpointRouting = false' '配置服务(...)。在 Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder 应用程序,操作'1配置路由)位于 Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder 应用程序)在 netmig.Startup.Configure(IApplicationBuilder 应用程序, IHostingEnvironment env) 在 E:\testapp\netmig\Startup.cs:第 46 行 System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[] 参数、签名 sig、布尔构造函数、布尔包装异常) 在 System.Reflection.RuntimeMethodInfo.Invoke(对象 obj,BindingFlags invokeAttr、Binder 绑定器、Object[] 参数、CultureInfo 文化)
在 Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象 实例,IApplicationBuilder 构建器)位于 Microsoft.AspNetCore.Hosting.ConfigureBuilder.c__DisplayClass4_0.b__0(IApplicationBuilder 建设者)在 Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.c__DisplayClass13_0.b__2(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder 建设者)在 Microsoft.AspNetCore.HostFilteringStartupFilter.c__DisplayClass0_0.b__0(IApplicationBuilder 应用程序)在 Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken 取消令牌)位于 Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken 取消令牌)位于 Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机、CancellationToken 令牌)位于 Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机、CancellationToken 令牌)位于 Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost 主机)在 netmig.Program.Main(String[] args) 中 E:\testapp\netmig\Program.cs:line 18 watch : 退出并显示错误代码 -532462766

我正在运行的完整代码可以在 GitHub 上找到。我的 .NET 信息:

dotnet --info .NET Core SDK(反映任何 global.json):版本:
3.0.100 提交:04339c3a26

运行环境: 操作系统名称: Windows 操作系统版本: 10.0.18362 操作系统平台:Windows RID:win10-x64 基本路径:C:\Program Files\dotnet\sdk\3.0.100\

主机(对支持有用):版本:3.0.0 提交:7d57652f33

安装的.NET Core SDK: 2.2.401 [C:\Program Files\dotnet\sdk] 3.0.100 [C:\Program Files\dotnet\sdk]

安装的.NET Core运行时:Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.6 [C:\Program 文件\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0 [C:\Program 文件\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 3.0.0 [C:\Program 文件\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0 [C:\Program 文件\dotnet\shared\Microsoft.WindowsDesktop.App]

要安装其他 .NET Core 运行时或 SDK:
https://aka.ms/dotnet-download


For v2.2

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseMvc();
    }

对于 v3

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

还要确保您的 csproj 的目标是 .net core 3.0

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 .NET Core 2.2 Web API 迁移到 .NET Core 3.0? 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi

随机推荐

  • com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“where 子句”中的未知列“Smith”

    希望你能帮我 我收到错误 com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException 未知 where 子句 中的 Smith 列 我有一个名为 aspirante 的数据库 它有一个
  • ApplicationRoute 的加载状态

    使用 余烬1 7 0 我有一些服务器端数据 希望在转换任何路由之前将其加载到我的 ember 应用程序中 我的多个 但不是全部 其他路线 控制器需要此数据 我想我可以在 ApplicationRoute 中加载这些数据model方法 它工作
  • 如何检查处理 Celery 任务的队列

    我目前正在利用芹菜来执行定期任务 我是芹菜新手 我有两个工作人员运行两个不同的队列 一种用于缓慢的后台作业 另一种用于用户在应用程序中排队的作业 我正在 datadog 上监视我的任务 因为这是确认我的工作人员正常运行的简单方法 我想要做的
  • $("*", $("#container1")) 和 $("#container2").find("*") 之间有什么区别?

    有什么区别 container1 and container2 find 我一般用AA 但不太好的话可以多直到奇数
  • Rhino:从 Java 内部返回 JSON

    我有 Java 中 JSON 序列化对象的字符串表示形式 例如 name John age 24 我如何解析并返回到JavaScript上下文 就这样JSON parse str 在 JS 中可以工作吗 谢谢 最新版本的Rhino只有四个a
  • 在 iPhone 中实现 tesseract OCR

    我想在我的项目中实现手写识别 例如当用户写入时A在屏幕上 然后屏幕应该显示A 我在谷歌上搜索过 到目前为止我发现 tesseract OCR 但我不明白是什么tesseract OCR以及如何在我的项目中实现这一点有人可以提供演示教程吗te
  • zsh:找不到命令:mongo

    我按照此处找到的官方说明进行操作 在 Mac OS Big Sur 上 https docs mongodb com manual tutorial install mongodb on os x 当尝试运行时mongo 我收到 zsh c
  • 我可以将自定义 JsonSerializer 设置为 RestSharp RestClient

    我正在使用 RestSharp 包中的自述文件中提到的自定义 JsonSerializer 到目前为止 我将自定义序列化器添加到每个请求中 RestRequest request new RestRequest scans Method P
  • Highcharts:如何获取缩放窗口中的数据点?

    我是 Highcharts 的新手 我有一个折线图 以下是类别 9 7 14 9 8 14 9 9 14 9 10 14 9 11 14 9 12 14 9 13 14 9 14 14 9 15 14 9 16 14 9 17 14 9 1
  • 自定义事件文档 onContentChange

    这里 jsFiddle 来测试示例 我目前正在编写一个 jQuery 片段来处理 DOM 中由任何 jQuery 触发 的任何 html 内容更改domManip功能 扩展一些功能 不确定这是最好的方法 所以欢迎任何建议 如果绑定到文档 此
  • Tumblr OAuth 图片帖子给了我 401/“无效的 OAuth 凭据”

    我有一个 iOS 应用程序 可以将图像发布到多个服务 包括 Twitter 并且我正在尝试将该支持扩展到 tumblr 我已经为 OAuth 1 0a 标头逻辑改编了一些开源代码 其运行良好 足以成功用于 twitter twitpic 和
  • 将全名拆分为名字和姓氏

    我有一份客户名单 其姓名为全名 我想创建一个以全名作为参数并分别返回名字和姓氏的函数 如果这是不可能的 我可以有两个单独的函数 一个返回名字 另一个返回姓氏 完整姓名列表包含最多三个单词的姓名 我想要的是这样的 当全名由两个单词组成时 第一
  • SQL自连接多次

    我有一个存储周条目的数据库表 Id Value WeekId 1 1 0000 1 2 2 0000 1 同一周最多可以有三个条目 所以我想使用自连接可以解决这个问题 SELECT w1 Value w2 Value w3 Value FR
  • 寻找 Pandas 中两个系列之间的交集

    我有两个系列s1 and s2在 pandas 中 想要计算交集 即该系列的所有值都是公共的 我将如何使用concat函数来做到这一点 我一直在尝试解决这个问题 但一直无法 我不想计算索引的交集s1 and s2 但基于值 将这两个系列放入
  • 如何检查文件是否是Python中的符号链接?

    在Python中 是否有一个函数可以检查给定的文件 目录是否是符号链接 例如 对于以下文件 我的包装函数应该返回True ls l total 0 lrwxrwxrwx 1 root root 8 2012 06 16 18 58 dir
  • 闪亮仪表板仪表板标题中的登录按钮

    我正在对闪亮的仪表板进行最后的修饰 仪表板使用 googleAuthR 通过 google oauth 进行身份验证 一切正常 但我目前必须将登录按钮放在仪表板侧栏或仪表板主体中 而且我真的很喜欢将其放在仪表板标题中下拉菜单的位置 不幸的是
  • SQL 自动生成表中缺失日期的缺失日期和前一个日期的价格

    我有一个表 MKT 其中包含以下字段value date stk exch security mkt price source currency name假设每天 500 只证券 不包括周六和周日以及其他市场假期 我需要一个 sql 来自动
  • 按下 Tab 时自动滚动到 SliverList 项目之一

    我有一个有状态的小部件 顶部有选项卡 下面有一个列表 该列表分为不同的类别 每个类别都列在每个选项卡中 我想要做的是 当在选项卡中按下某个项目时 我希望列表中相应的类别滚动查看 下面是相关代码供参考 SliverPersistentHead
  • 从数据框中删除行名称的显示

    我正在使用以下代码创建一个数据框 df lt data frame dbGetQuery con paste select from test 结果是这样的 UID BuildingCode AccessTime 1 123456 BUIL
  • 如何将 .NET Core 2.2 Web API 迁移到 .NET Core 3.0?

    我正在关注微软的迁移指南 但失败了 因此 我使用 NET 2 2 创建了一个新项目来建立一个干净的模板 然后尝试迁移到 NET Core 3 0 但它再次失败了 在里面Startup cs 依赖注入找不到方法services AddMvc