Mvc 5 seems to depend on Owin, which is great if you want to self host or run on a Mac. But lets assume I just want to run under IIS just like the previous versions and I'm not interested in what Owin has to offer. The default "blank" mvc5 template uses owin and 15 other dependencies. I've tried removing packages one by one but it seems like the site didn't know how to start without using an attribute from Owin. So, how do I get just ASP.net, mvc 5, under iis without Owin?
Open Web Interface for . NET (OWIN) defines an abstraction between . NET web servers and web applications.
Katana is a flexible set of components for building and hosting Open Web Interface for . NET (OWIN)-based web apps. New development should use ASP.NET Core. The Microsoft. Owin.
OWIN is an interface between . NET web applications and web server. The main goal of the OWIN interface is to decouple the server and the applications. It acts as middleware. ASP.NET MVC, ASP.NET applications using middleware can interoperate with OWIN-based applications, servers, and middleware.
The easy way to disable Owin is in web.config
file and in <appSettings>
section add this:
<add key="owin:AutomaticAppStartup" value="false" />
To remove Owin completely right click on your project and from menu click on Manage Nuget Packages
. on left side of Manage Nuget Packages
window click on Installed Package
then on right side of window in search box type owin
.
uninstall packages in order of:
and after removing microsoft.owin.security.twitter
other owin packages removed automatically and if it does not happened on your machine remove the others by yourself. then remove this packages:
Open web.config
file and remove these sections from <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
:
<dependentAssembly> <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly>
Remove Startup.cs
file in root of the project. open App_Start folder
and remove IdentityConfig.cs
and Startup.Auth.cs
files. open Controller folder
and remove AccountController.cs
and ManageController.cs
. in Models folder
Delete all Models and in View Folder
Remove Account Folder
and Manage folder
.
Restarts Visual Studio and after that run the project. if you get this error:
The following errors occurred while attempting to load the app. - No assembly found containing an OwinStartupAttribute. - No assembly found containing a Startup or [AssemblyName].Startup class. To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config. To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config. you have two ways to solve it:
bin folder
and if there is any Owin assembly
, delete all of them<appSettings>
section then add this <add key="owin:AutomaticAppStartup" value="false" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With