首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到.Net-Core 3.1会导致经过身份验证的控制器升级到404

升级到.Net-Core 3.1会导致经过身份验证的控制器升级到404
EN

Stack Overflow用户
提问于 2020-05-06 11:49:32
回答 1查看 194关注 0票数 1

我最近将我的项目升级到了.net-core 3.1,我注意到了一些奇怪的行为,我所有的认证控制器都是404。

我保留了一个默认的匿名端点,我通常只是用它来验证我的api是否正常工作。这个控制器工作得很好。

代码语言:javascript
复制
[AllowAnonymous]
[Route("api/[controller]")]
public class ValuesController : Controller
{
    //...
}

这个控制器看起来工作得很好,尽管没有用[ApiController]装饰

我找到了一个related issue,上面写着这与ApiVersioning相关

然而,我没有看到在.Net-Core 3.1的启动中设置它的方法

我已经向所有经过身份验证的控制器添加了[ApiController],我看到的唯一影响是,我的所有公共方法现在都有资格验证允许绑定到主体的参数数量。一切都还是404的

代码语言:javascript
复制
[ApiController]
[Route("api/[controller]")]
public class AccountController : Controller
{
    //...
    HttpPost("ExternalLogin")]
    [AllowAnonymous]
    public IActionResult ExternalLogin(string provider, string entryCode = null, string returnUrl = null)
    {
        //...
    }
}

如何让我的控制器接收请求?

EN

回答 1

Stack Overflow用户

发布于 2020-05-06 14:45:42

如果您从.NET核心2.2迁移到3.1,则必须调整启动类:

在ConfigureServices中:替换services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

使用

services.AddControllers();

在Configure方法中:而不是app.UseMvc();

使用:

代码语言:javascript
复制
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61627092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档