gpt4 book ai didi

asp.net-web-api - ASP.Net WebAPI OWIN : Why would Request. GetOwinContext() 返回 null?

转载 作者:行者123 更新时间:2023-12-03 19:52:33 30 4
gpt4 key购买 nike

在我的生产代码中,我们遇到了 Request.GetOwinContext() 总是返回 null 的问题。

我设置了一个小型测试 WebAPI Controller 来尝试隔离问题:

    public class TestController : ApiController
{
[HttpGet]
public async Task<IHttpActionResult> GetAsyncContext(string provider)
{
if (HttpContext.Current.GetOwinContext() == null)
return this.BadRequest("No HttpContext.Current Owin Context");

if (Request.GetOwinContext() == null)
return this.BadRequest("No Owin Context");

return this.Ok();
}

[HttpGet]
public IHttpActionResult GetContext(string provider)
{
if (HttpContext.Current.GetOwinContext() == null)
return this.BadRequest("No HttpContext.Current Owin Context");

if (Request.GetOwinContext() == null)
return this.BadRequest("No Owin Context");

return this.Ok();
}
}

一开始我以为可能跟异步运行的action方法有关,但是运行上面的之后,发现在两个版本中,Request.GetOwinContext()都返回null。

我正在使用 Microsoft.AspNet.WebApi.Owin.5.1.1(这似乎是定义 GetOwinContext() 扩展方法的地方)。

关于这里发生了什么的任何想法???

最佳答案

另一个原因(尤其是在从 ASP.NET MVC4 和/或 Empty WebApi 模板升级之后)在 WebAPI 项目的根目录中缺少 Startup.cs 文件。

此外,请确保您已安装 Microsoft.Owin.Host.SystemWeb 包。

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(TestMVC5.Startup))]

namespace TestMVC5
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}

关于asp.net-web-api - ASP.Net WebAPI OWIN : Why would Request. GetOwinContext() 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23252251/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com