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

时间:2018-04-11 06:28:21

标签: 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)
    {

    }}

我已在global.asax.cs中注册了此过滤器。 当我尝试使用邮递员调用我的web api时,它显示错误: -

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

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

我的api看起来像这样: -

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

我知道之前已经问过这个问题,但解决方案都没有对我有用。 请帮我解决这个问题。

3 个答案:

答案 0 :(得分:5)

您是否偶然引用了.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>

答案 1 :(得分:0)

您可以尝试启用自动生成绑定。 右键单击您的项目->属性->应用程序

Tick that

答案 2 :(得分:0)

<块引用>

您是否在任何情况下都引用了 .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>
                         

非常感谢“Kiloh”。它对我有用!

相关问题