第六节: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方法。

代码如下:

   public class ForthController : ApiController
{
//Get http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=123456
[HttpGet]
public string CheckLogin(string userName, string pwd)
{
if (userName == "admin" && pwd == "")
{
return "ok";
}
else
{
return "error";
}
}
}

3. 编写部署代码

  包括端口设定,路由规则的配置,启动和关闭,代码如下:

    class Program
{
static void Main(string[] args)
{
try
{
var config = new HttpSelfHostConfiguration("http://localhost:1234");
config.Routes.MapHttpRoute(name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
using (var sever = new HttpSelfHostServer(config))
{
sever.OpenAsync().Wait();
Console.WriteLine("服务已经成功启动");
Console.WriteLine("输入任意字符关闭");
Console.Read();
sever.CloseAsync().Wait(); }
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}

  特别注意:不能直接在VS里启动,会报权限不够的错误,正确的使用放在,在Bin文件里,找到Exe程序,以管理员的身份启动即可。

 4. 启动exe程序,然后用PostMan进行测试:http://localhost:1234/api/Forth/CheckLogin?userName=admin&pwd=123456,正常访问,结果如下:

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

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

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 
上一篇:JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】


下一篇:jenkins 自动化部署实战