Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'

I have created One Filter Attribute

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

    }

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

    }
}

I have registered this filter inside the global.asax.cs.

When I am trying to call my web API using Postman it is showing the error:

Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.

My project target framework is 4.6.1 and the System.Net.Http version is 4.2.0.0

My API looks like this:

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

I know this question has been asked before but none of the solutions worked for me.

Please help me to resolve this issue.

like image 685
Ankur Gupta Avatar asked Apr 11 '18 06:04

Ankur Gupta


1 Answers

Are you referencing a .NET Standard Library by any chance. I ran into this problem and solved it with a Binding Redirect:

  <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>
like image 187
Kiloh Avatar answered Oct 20 '22 19:10

Kiloh