第六節:WebApi的部署方式(自託管)

一. 簡單說明api

   開篇就介紹過WebApi和MVC相比,其中優點之一就是WebApi能夠不依賴於IIS部署,能夠自託管,固然這裏指的是 .Net FrameWork 下的 WebApi 和 MVC 相比較,在.Net Core下,固然就另行別論。
測試

  下面咱們重點介紹的就是WebApi基於控制檯程序進行部署。spa

1. 安裝程序集3d

  經過Nuget添加程序集:Microsoft.AspNet.WebApi 和 System.Web.Http.SelfHost。code

2. 新建一個WebApi的控制器,裏面有一個CheckLogin的Get方法。blog

 代碼以下:路由

 1   public class ForthController : ApiController  2  {  3         //Get http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=123456
 4  [HttpGet]  5         public string CheckLogin(string userName, string pwd)  6  {  7             if (userName == "admin" && pwd == "123456")  8  {  9                 return "ok"; 10  } 11             else
12  { 13                 return "error"; 14  } 15  } 16     }

3. 編寫部署代碼部署

  包括端口設定,路由規則的配置,啓動和關閉,代碼以下:get

 1    class Program  2  {  3         static void Main(string[] args)  4  {  5             try
 6  {  7                 var config = new HttpSelfHostConfiguration("http://localhost:1234");  8                 config.Routes.MapHttpRoute(name: "DefaultApi",  9                                            routeTemplate: "api/{controller}/{action}/{id}", 10                                            defaults: new { id = RouteParameter.Optional }); 11                 using (var sever = new HttpSelfHostServer(config)) 12  { 13  sever.OpenAsync().Wait(); 14                     Console.WriteLine("服務已經成功啓動"); 15                     Console.WriteLine("輸入任意字符關閉"); 16  Console.Read(); 17  sever.CloseAsync().Wait(); 18 
19  } 20  } 21             catch (Exception ex) 22  { 23  Console.WriteLine(ex.Message); 24  } 25  Console.ReadKey(); 26  } 27     }

  特別注意:不能直接在VS裏啓動,會報權限不夠的錯誤,正確的使用放在,在Bin文件裏,找到Exe程序,以管理員的身份啓動便可。博客

 4. 啓動exe程序,而後用PostMan進行測試:http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=123456,正常訪問,結果以下:

 

 

 

!

  • 做       者 : Yaopengfei(姚鵬飛)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 聲     明1 : 本人才疏學淺,用郭德綱的話說「我是一個小學生」,若有錯誤,歡迎討論,請勿謾罵^_^。
  • 聲     明2 : 原創博客請在轉載時保留原文連接或在文章開頭加上本人博客地址,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索