第六节:WebApi的部署方式(自托管)
一. 簡(jiǎn)單說(shuō)明
? 開(kāi)篇就介紹過(guò)WebApi和MVC相比,其中優(yōu)勢(shì)之一就是WebApi可以不依賴于IIS部署,可以自托管,當(dāng)然這里指的是 .Net FrameWork 下的 WebApi 和 MVC 相比較,在.Net Core下,當(dāng)然就另行別論。
下面我們重點(diǎn)介紹的就是WebApi基于控制臺(tái)程序進(jìn)行部署。
1. 安裝程序集
通過(guò)Nuget添加程序集:Microsoft.AspNet.WebApi 和 System.Web.Http.SelfHost。
2. 新建一個(gè)WebApi的控制器,里面有一個(gè)CheckLogin的Get方法。
?代碼如下:
1 public class ForthController : ApiController2 {3 //Get http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=1234564 [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. 編寫(xiě)部署代碼
包括端口設(shè)定,路由規(guī)則的配置,啟動(dòng)和關(guān)閉,代碼如下:
1 class Program2 {3 static void Main(string[] args)4 {5 try6 {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("服務(wù)已經(jīng)成功啟動(dòng)"); 15 Console.WriteLine("輸入任意字符關(guān)閉"); 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里啟動(dòng),會(huì)報(bào)權(quán)限不夠的錯(cuò)誤,正確的使用放在,在Bin文件里,找到Exe程序,以管理員的身份啟動(dòng)即可。
?4. 啟動(dòng)exe程序,然后用PostMan進(jìn)行測(cè)試:http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=123456,正常訪問(wèn),結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的第六节:WebApi的部署方式(自托管)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2023年GDP总量预测,美国24。9万
- 下一篇: 同步与异步系列之二 导读目录