| uid | web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api |
|---|---|
| title | Use OWIN to Self-Host ASP.NET Web API - ASP.NET 4.x |
| author | rick-anderson |
| description | Tutorial with code showing how to host ASP.NET Web API in a console application. |
| ms.author | tdykstra |
| ms.date | 07/09/2013 |
| ms.assetid | a90a04ce-9d07-43ad-8250-8a92fb2bd3d5 |
| msc.legacyurl | /web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api |
| msc.type | authoredcontent |
| ms.custom | sfi-image-nochange |
This tutorial shows how to host ASP.NET Web API in a console application, using OWIN to self-host the Web API framework.
Open Web Interface for .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.
- Visual Studio 2017
- Web API 5.2.7
Note
You can find the complete source code for this tutorial at github.com/aspnet/samples.
On the File menu, New, then select Project. From Installed, under Visual C#, select Windows Desktop and then select Console App (.Net Framework). Name the project "OwinSelfhostSample" and select OK.
From the Tools menu, select NuGet Package Manager, then select Package Manager Console. In the Package Manager Console window, enter the following command:
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
This will install the WebAPI OWIN selfhost package and all the required OWIN packages.
In Solution Explorer, right-click the project and select Add / Class to add a new class. Name the class Startup.
Replace all of the boilerplate code in this file with the following:
[!code-csharpMain]
Next, add a Web API controller class. In Solution Explorer, right-click the project and select Add / Class to add a new class. Name the class ValuesController.
Replace all of the boilerplate code in this file with the following:
[!code-csharpMain]
Replace all of the boilerplate code in the Program.cs file with the following:
[!code-csharpMain]
To run the application, press F5 in Visual Studio. The output should look like the following:
[!code-consoleMain]



