我最近将我的项目升级到了.net-core 3.1,我注意到了一些奇怪的行为,我所有的认证控制器都是404。
我保留了一个默认的匿名端点,我通常只是用它来验证我的api是否正常工作。这个控制器工作得很好。
[AllowAnonymous]
[Route("api/[controller]")]
public class ValuesController : Controller
{
//...
}这个控制器看起来工作得很好,尽管没有用[ApiController]装饰
我找到了一个related issue,上面写着这与ApiVersioning相关
然而,我没有看到在.Net-Core 3.1的启动中设置它的方法
我已经向所有经过身份验证的控制器添加了[ApiController],我看到的唯一影响是,我的所有公共方法现在都有资格验证允许绑定到主体的参数数量。一切都还是404的
[ApiController]
[Route("api/[controller]")]
public class AccountController : Controller
{
//...
HttpPost("ExternalLogin")]
[AllowAnonymous]
public IActionResult ExternalLogin(string provider, string entryCode = null, string returnUrl = null)
{
//...
}
}如何让我的控制器接收请求?
发布于 2020-05-06 14:45:42
如果您从.NET核心2.2迁移到3.1,则必须调整启动类:
在ConfigureServices中:替换services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
使用
services.AddControllers();
在Configure方法中:而不是app.UseMvc();
使用:
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});https://stackoverflow.com/questions/61627092
复制相似问题