一. 简单说明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,正常访问,结果以下:
!