neo112
neo112

Reputation: 1773

SignalR 2.0.2 and Owin 2.0.0 dependency conflict

I'm trying to get SignalR working in an MVC5 project with individual accounts.

The MVC project has by default Owin 2.0.0 and all of the Owin.* components are also 2.0.0.

So I used NuGet to get all the SignalR packages, it automatically resolved dependancies and downloaded v 2.0.2.

The project throws an error on startup with the following message:

Could not load file or assembly 'Microsoft.Owin, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

I also tried upgrading Owin to 2.1.0 but that didn't help either.

Has anyone faced the same problem and what was the solution?

Upvotes: 29

Views: 21933

Answers (3)

Ziggler
Ziggler

Reputation: 3500

In my case when I hosted my WCF service that has SignalR functionality in IIS and when I go to my IIS manager and to my application where I hosted my service right click svc file and click Browse, I was getting this error. So I did the following

In my Visual Studio, Tools -> Library Package Manager -> Package Manager Console

I made sure I selected my Website project that hosted my WCF service and gave below two commands one after another

uninstall-package Microsoft.AspNet.SignalR

install-package Microsoft.AspNet.SignalR

After this I just re-build my solution. Went to IIS manager and to my application where I hosted my service right click svc file and click Browse, I was able to see my service running in IE.

Upvotes: 1

Akira Yamamoto
Akira Yamamoto

Reputation: 4935

You can update this references to the lastest version I found (now is 2.1.0):

Install-Package Microsoft.Owin -Version 2.1.0
Install-Package Microsoft.Owin.Security -Version 2.1.0

And make sure your Web.config have these binding redirects for version 2.1.0:

<configuration>
  <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.1.0.0" newVersion="2.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Or you can update this references to version 2.0.1:

Install-Package Microsoft.Owin -Version 2.0.1
Install-Package Microsoft.Owin.Security -Version 2.0.1

And make sure your Web.config have these binding redirects for version 2.0.1:

<configuration>
  <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.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Upvotes: 49

Jim Bolla
Jim Bolla

Reputation: 8295

Perhaps you need a binding redirect in your .config

<configuration>
<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="2.0.2.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
</configuration>

Upvotes: 3

Related Questions