Locally - my MVC 4, asp.net, c# app runs fine on IIS 8 / Windows 8.
When deployed to Windows Server 2008, I get this error:
Could not load file or as
To install System.Web.Mvc 3.0.0.0
version
1) Install windows web platform installer
2) Open Windows web platform installer from start menu
3) Go to Products
tab
4) Search for MVC
5) Install MVC 3
Add below code in web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
<dependentAssembly>
***<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0"*** newVersion="5.2.7.0" />
</dependentAssembly>
Check correct versions are there
In the error page I had this:
LOG: Redirection detected in the application configuration file: 5.1.0.0 was redirected to 5.2.3.0.
So I had to change this line in the web.config to the 5.1.0.0 version and it worked!
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.1.0.0" />
<!--<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> Older line -->
</dependentAssembly>
I think this is due to a version problem when I downloaded the code from TFS
Hope this helps
I had this exact same issue using MVC4 with Ninject built for .Net 4.5
To fix this i had to add a binding redirect to my Web.config file:
(at the end of the file, just before the </configuration>
tag)
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
This forces the web server to use System.Web.Mvc 4.0.0.0
instead of an older version.
There are some procedures using to fix the issue and if the binding redirect in
web.config
does not solve the problem, you can try the following steps to fix it:
1) In Visual Studio Solution Explorer tree right-click References under your web project and select Manage NuGet Packages.
2) Go to Browse tab and select nuget.org
as Package source.
3) Search and install the following packages: Ninject
, Ninject.Web.Common
and Ninject.MVC5
.
It is also better to update the packages particularly Microsoft ASP.NET MVC
on Updates tab of Manage NuGet Packages.
Hope this helps...