找不到方法:“ System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()”

Ank*_*kur 3 asp.net-web-api asp.net-mvc-5 visual-studio-2017

我已经创建了一个过滤器属性

public class AuthFilterAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
    public AuthFilterAttribute()
    {

    }

    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我已经在中注册了此过滤器global.asax.cs

当我尝试使用Postman调用Web API时,显示错误:

找不到方法:“ System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()”。

我的项目目标框架是4.6.1System.Net.Http版本是4.2.0.0

我的API如下所示:

[AuthFilter]
public class ScheduleApiController : BaseApiController
{
    [Route("api/v1/schedules")]
    [HttpGet]
    public IHttpActionResult GetSchedules()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道之前曾有人问过这个问题,但是没有一个解决方案对我有用。

请帮助我解决此问题。

小智 10

您是否偶然引用了.NET标准库。我遇到了这个问题,并通过绑定重定向解决了它:

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.2.0.0" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

  • WTF 为什么发布向导没有自动将其添加到 web.config 中? (2认同)