Could not load file or assembly 'System.Web.Http.Owin'

18,058

The problem can be the Web Api 2.2 use the microsoft.owin 2.0.2 version. You can change the behavior in the web.config.

If your version of microsoft.owin is 3.0.0, in the line "bindingRedirect ", in "newVersion" set 3.0.0

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="3.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

Regard,

Share:
18,058
vaj90
Author by

vaj90

Updated on June 08, 2022

Comments

  • vaj90
    vaj90 almost 2 years

    I did upgrading MVC5 and Web Api 2.2, I created MVC Web application. Inside of it, i added empty Web API defined as a child for my main project, all i want is to secure my data, routing worked well. but there are some data i want to get on my context, when try to get into localhost:34862/api/account/test i get an error

    Here's my codes in my ApiController

    [RoutePrefix("api/account")]
    public class AccountController : ApiController
    {
        private readonly IAccountUoW _iaUoW;
    
        public AccountController(IAccountUoW iaUoW)
        {
            _iaUoW = iaUoW;
        }
    
        [Route("")]
        [HttpGet]
        public string Get()
        {
            return "test";
        }
    
        [Authorize]
        [Route("test")]
        [HttpGet]
        public async Task<IHttpActionResult> GetTourInfos()
        {
            var ctx = (OwinContext)Request.GetOwinContext();
            ClaimsPrincipal user = ctx.Authentication.User;
            IEnumerable<Claim> claims = user.Claims;
            return Ok();
        }
    }
    

    my references i add from NuGet

    • Microsoft ASP.NET Web API 2.2
    • Owin
    • Microsoft.Owin
    • Microsoft.Owin.Host.SystemWeb
    • Microsoft.Owin.Security.Cookies
    • Microsoft.Owin.Security.OAuth

    i also checked the references i added from my main project to my sub project it has the same version from my sub project

    here packages.config from sub project

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.Cookies" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.OAuth" version="3.0.0" targetFramework="net45" />
      <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
      <package id="Owin" version="1.0" targetFramework="net45" />
    </packages
    

    Here's my packages.config from my main project

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
      <package id="bootstrap" version="3.0.0" targetFramework="net45" />
      <package id="EntityFramework" version="6.1.1" targetFramework="net45" />
      <package id="jQuery" version="1.10.2" targetFramework="net45" />
      <package id="jQuery.Validation" version="1.11.1" targetFramework="net45" />
      <package id="Microsoft.AspNet.Identity.Core" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.AspNet.Identity.Owin" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net45" />
      <package id="Microsoft.AspNet.WebPages" version="3.2.2" targetFramework="net45" />
      <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.0" targetFramework="net45" />
      <package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.Cookies" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.Facebook" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.Google" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.MicrosoftAccount" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.OAuth" version="3.0.0" targetFramework="net45" />
      <package id="Microsoft.Owin.Security.Twitter" version="2.1.0" targetFramework="net45" />
      <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
      <package id="Modernizr" version="2.6.2" targetFramework="net45" />
      <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
      <package id="Ninject" version="3.2.0.0" targetFramework="net45" />
      <package id="Ninject.MVC5" version="3.2.1.0" targetFramework="net45" />
      <package id="Ninject.Web.Common" version="3.2.0.0" targetFramework="net45" />
      <package id="Ninject.Web.Common.WebHost" version="3.2.0.0" targetFramework="net45" />
      <package id="Ninject.Web.WebApi" version="3.2.1.0" targetFramework="net45" />
      <package id="Owin" version="1.0" targetFramework="net45" />
      <package id="Respond" version="1.2.0" targetFramework="net45" />
      <package id="Unity" version="3.5.1404.0" targetFramework="net45" />
      <package id="WebActivatorEx" version="2.0" targetFramework="net45" />
      <package id="WebGrease" version="1.5.2" targetFramework="net45" />
    </packages>
    

    here is my error

    Could not load file or assembly 'System.Web.Http.Owin, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

    From the package manager, i run also Update-Package Microsoft.AspNet.WebApi -reinstall, but still error is there, what i am missing? somebody help me? any answer will be appreciated thank you in advance.