当前位置:职场发展 > .net core api 迁移 3.0 后不允许使用 Post 405 Method

.net core api 迁移 3.0 后不允许使用 Post 405 Method

  • 发布:2023-09-29 16:23

-->

问题根源:.net core api 之前是使用.net core 2.0 开发的。经过测试,一切正常。最近,它升级到了3.0。发现api get正常,发帖提示400、405 Method Not allowed

如果搜索没有找到原因,我在本地调试了一下,提示错误信息:

System.InvalidOperationException:不允许同步操作。改为调用 ReadAsync 或将 AllowSynchronousIO 设置为 true。

错误原因:.net core 3.0不允许同步操作,必须改为异步模式

解决方案:将原来的ReadToEnd()改为ReadToEndAsync(),问题解决。

使用 (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
结果=等待reader.ReadToEndAsync(); //升级到3.0不允许同步操作,必须是异步的
www.sychzs.cn("FactoryBarCode:" + result);
}

另一种方式:

值得注意的是,如果您直接在 kestrel 上托管,那么您的 Program.cs 应该有适当的ConfigureKestrel 调用 公共静态 IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.ConfigureKestrel((上下文, 选项) =>
{
options.AllowSynchronousIO = true;
}) -->

相关文章