Method not found: 'System.Net.Http.HttpRequest

2019-07-11 04:15发布

问题:

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 tryig 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 solution worked for me. Please help me to resolve this issue.

回答1:

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>