I have an ASP .Net MVC app which works just fine under IIS. I need to be able to run the same app from a self hosted console app. How do I do that? Should I use OWIN? What the code should look like?
NET (OWIN) defines an abstraction between . NET web servers and web applications. OWIN decouples the web application from the server, which makes OWIN ideal for self-hosting a web application in your own process, outside of IIS.
Hosting of OWIN in IIS Use the following procedure. Step 1: Open the Visual Studio and create the "New Project". Step 2: Create the new ASP.NET Web Application and enter the name for the application. Step 3: Select the Empty Project Template to create the application.
Self Host just means it uses the built-in Web Server, which is in contrast to classic ASP.NET Framework Web Apps which typically requires IIS or the built-in WebDev server to run.
Now that ASP.NET Core is out there are a few ways to Self Host a web application. One option is to use an OWIN based web server such as Nowin.
var host = new WebHostBuilder() .UseNowin() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>() .Build();
Alternatively, Kestrel has also been a popular choice for hosting ASP.NET Core applications.
var host = new WebHostBuilder() .UseUrls("http://*:1000") // default URL .UseKestrel() .Build();
You cannot self host ASP.NET MVC 5 (the current version of MVC). However you can use NancyFx today or have a look at ASP.NET vNext which does support OWIN.
Note you can also use WebApi with OWIN today if you need to make single page apps (but then it's not server side MVC).
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