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


一. 簡單說明

   開篇就介紹過WebApi和MVC相比,其中優勢之一就是WebApi可以不依賴於IIS部署,可以自托管,當然這里指的是 .Net FrameWork 下的 WebApi 和 MVC 相比較,在.Net Core下,當然就另行別論。

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

1. 安裝程序集

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

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

 代碼如下:

 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. 編寫部署代碼

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

 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 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。
 


免責聲明!

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



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