脫離IIS的WebAPI


創建控制台工程

創建純凈版webApi程序(前面的博客有提到)

webAPI中引入nuget包 a) Microsoft.AspNet.WebApi.OwinSelfHost   b)Microsoft.AspNet.WebApi.WebHost

 

webAPI中新增啟動類

 1 using Microsoft.Owin;
 2 using Owin;
 3 using System.Web.Http;
 4 [assembly: OwinStartup(typeof(WebApi.Startup))]
 5 namespace WebApi
 6 {
 7     public class Startup
 8     {
 9         public void Configuration(IAppBuilder app)
10         {
11             HttpConfiguration config = new HttpConfiguration();
12             config.Routes.MapHttpRoute(
13                 name: "DefaultApi",
14                 routeTemplate: "api/{controller}/{id}",
15                 defaults: new { id = RouteParameter.Optional }
16             );
17             app.UseWebApi(config);
18         }
19 
20     }
21 }

webAPI中添加控制器(前面的文章中有提到)

 1 using System.Web.Http;
 2 namespace WebApi.Controllers
 3 {
 4     public class WebAppController : ApiController
 5     {
 6         [HttpGet]
 7         public string Hello()
 8         {
 9             return "hello world";
10         }
11 
12     }
13 }

控制台程序中引入nuget包 a)Microsoft.AspNet.WebApi.OwinSelfHost  b)Topshelf

控制台程序引用webapi項目

控制台程序 添加類 StartJob

 1 using Microsoft.Owin.Hosting;
 2 using System;
 3 using WebApi;
 4 
 5 namespace WebApiService
 6 {
 7     class StartJob
 8     {
 9         IDisposable dis = null;
10         public void Start()
11         {
12             dis = WebApp.Start<Startup>(url: "http://localhost:9088/");
13 
14         }
15         public void Stop()
16         {
17             dis.Dispose();
18             dis = null;
19         }
20 
21     }
22 }

控制台程序,在Main函數創建windows服務並啟動

 1 using Topshelf;
 2 namespace WebApiService
 3 {
 4     class Program
 5     {
 6         static void Main(string[] args)
 7         {
 8 
 9             HostFactory.Run(x =>
10             {
11                 x.Service<StartJob>(s =>
12                 {
13                     s.ConstructUsing(name => new StartJob());//創建對象實例
14                     s.WhenStarted(t => t.Start());//服務啟動時候,啟動Time
15                     s.WhenStopped(t => t.Stop());//服務關閉時候,關閉Time
16                 });
17 
18 
19                 x.RunAsLocalSystem();
20                 x.SetDescription("The Windows Service For WebApi");//這個是服務的描述
21                 x.SetDisplayName("WebApiService");//這個是服務的顯示名稱
22                 x.SetServiceName("WebApiService");//這個是服務的名稱
23             });
24         }
25     }
26 }

啟動程序

a)編譯程序WebApiService.exe,cmd並進入WebApiService.exe程序所在的目錄

b)安裝程序

c

c)啟動程序

4)使用瀏覽器訪問創建的hello方法

瀏覽器地址欄中輸入:http://localhost:9088/api/webapp/hello

如果要卸載服務,請使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM