Use OWIN to Self-Host ASP.NET Web API 2
2016-08-29 19:01
686 查看
Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层。OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外。
Use OWIN to Self-Host ASP.NET Web API 2
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.
This will install the WebAPI OWIN selfhost package and all the required OWIN packages.
Replace all of the boilerplate code in this file with the following:
Replace all of the boilerplate code in this file with the following:
Host ASP.NET Web API in an Azure Worker Role
This article was originally created on July 9, 2013
Kanchan Mehrotra
Use OWIN to Self-Host ASP.NET Web API 2
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.
Software versions used in the tutorial
You can find the complete source code for this tutorial at aspnet.codeplex.com.Create a Console Application
On the File menu, click New, then click Project. From Installed Templates, under Visual C#, click Windows and then click Console Application. Name the project “OwinSelfhostSample” and click OK.Add the Web API and OWIN Packages
From the Tools menu, click Library Package Manager, then click 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.
Configure Web API for Self-Host
In Solution Explorer, right click the project and select Add / Class to add a new class. Name the classStartup.
Replace all of the boilerplate code in this file with the following:
using Owin; using System.Web.Http; namespace OwinSelfhostSample { public class Startup { // This code configures Web API. The Startup class is specified as a type // parameter in the WebApp.Start method. public void Configuration(IAppBuilder appBuilder) { // Configure Web API for self-host. HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); appBuilder.UseWebApi(config); } } }
Add a Web API Controller
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 classValuesController.
Replace all of the boilerplate code in this file with the following:
using System.Collections.Generic; using System.Web.Http; namespace OwinSelfhostSample { public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { } } }
Start the OWIN Host and Make a Request Using HttpClient
Replace all of the boilerplate code in the Program.cs file with the following:using Microsoft.Owin.Hosting; using System; using System.Net.Http; namespace OwinSelfhostSample { public class Program { static void Main() { string baseAddress = "http://localhost:9000/"; // Start OWIN host using (WebApp.Start<Startup>(url: baseAddress)) { // Create HttpCient and make a request to api/values HttpClient client = new HttpClient(); var response = client.GetAsync(baseAddress + "api/values").Result; Console.WriteLine(response); Console.WriteLine(response.Content.ReadAsStringAsync().Result); } Console.ReadLine(); } } }
Running the Application
To run the application, press F5 in Visual Studio. The output should look like the following:StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Date: Tue, 09 Jul 2013 18:10:15 GMT Server: Microsoft-HTTPAPI/2.0 Content-Length: 19 Content-Type: application/json; charset=utf-8 } ["value1","value2"]
Additional Resources
An Overview of Project KatanaHost ASP.NET Web API in an Azure Worker Role
This article was originally created on July 9, 2013
Author Information
Kanchan Mehrotra
Comments (23) RSS Feed
You must be logged in to leave a comment.Show Comments相关文章推荐
- Use OWIN to Self-Host ASP.NET Web API 2 来访问我的webapi
- 使用 OWIN Self-Host ASP.NET Web API 2
- 使用 OWIN Self-Host ASP.NET Web API 2
- 基于ASP.NET WebAPI OWIN实现Self-Host项目实战
- Self-Host ASP.NET Web API 1 (C#)
- asp.net web api的自托管模式HttpSelfHostServer可以以控制台程序或windows服务程序为宿主,不单单依赖于IIS web服务器
- Self-Host ASP.NET Web API 1
- ASP.NET Web API Selfhost宿主环境中管道、路由
- ASP.NET WEB API的服务托管(Self-HOST)
- 基于ASP.NET WebAPI OWIN实现Self-Host项目实战
- Owin SelfHost Asp.net WebApi 遇到 No type was found that matches the controller named 'ControllerName' 异常的解决方案
- Self-Host c#学习笔记之Application.DoEvents应用 不用IIS也能執行ASP.NET Web API
- 基于ASP.NET WebAPI OWIN实现Self-Host项目实战
- Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
- ASP.NET Web API消息处理管道:Self Host下的消息处理管道[下篇]
- Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
- ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]
- ASP.NET Web API Selfhost宿主环境中管道、路由
- Microshaoft Cross-Domain + ASP.NET MVC 5 WebAPI 2 + Self-Host + JsonpMediaTypeFormatter + WCF + JsonP + PerformaceCounterFilter + Knockout.js + MVVM
- How to use an ASP.NET application to query an Indexing Service catalog by using Visual Basic .NET