采用Web Host方式寄宿Web API的宿主程序WebHost是一个空的ASP.NET应用,除了让它引用定义ContactsController项目的WebApi

我们还需要引用几个必须的程序集

    System.Web.Http;

    System.Web.Http.WebHost;

    System.Net.Http;

  如果采用WebHost的方式来寄宿WebAPI,ASP.NET自身的路由系统会成为接收请求的第一道屏障,在将请求递交给ASP.NET Web API自己

的信息处理管道之前,路由系统会解析出当前请求访问的目标HttpController和Action的名称。我们需要做的就是根据需求注册相应的路由,这也是

Web Host寄宿方式所需的唯一操作

  我们在WebHost项目中添加一个Global.asax文件。并在Application_Start方法中注册一个模板为  api/{controller}/{id}.

  api   :静态文本"api"表示前缀,(可有可无)

  {controller} :路由参数 ,表示HttpController的名称

  {id}  :可以映射为目标Action的方法的同名参数(这是一个可以缺省的路由参数)

 protected void Application_Start(object sender, EventArgs e){GlobalConfiguration.Configuration.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional });}

    如上所示,路由注册是通过调用代表全局路由表的HttpRouteController对象的扩张方法MapHttpRoute来完成的,

GlobalConfiguration的静态属性 Configuration返回一个代表当前配置的HttpConfiguration对象,全局路由表就注册在它的Rountes属性上。

  到此为止Web API的Web Host寄宿工作就已经完成了。我们可以利用浏览器来条用寄宿的Web API.  在默认情况下,通过 VS(本文使用的VS2015)创建的Web应用总是使用IIS Express作为服务器,它为自动为我们指定一个可用的端口号,为了更好的模拟真实发布环境,同时避免“跨域资源共享”带来的困扰,我们采用本地IIS作为服务器。      方式一

在浏览器输入http://localhost/WebHost/api/Contacts     请求的就是我们的Get方法,返回所有的信息

在浏览器http://localhost/WebHost/api/Contacts/001 ,同样请求的还是Get方法,此时{id}识别为001,返回的就是这个人的信息。

方式二  手动在IIS发布

在浏览器http://localhost/YRFAPIDemo/WebHost/api/Contacts/001  ,看下图,得到的结果是一样的。

在开发阶段为什么要使用IIS启动程序呢,最简单的好处就是可以直接附加到进程进行调试。

转载于:https://www.cnblogs.com/fenger-VIP/p/6678049.html

1.1.2 以Web Host方式寄宿Web API相关推荐

  1. 1.1.3 以Self Host方式寄宿Web API

    寄宿Web API不一定需要IIS的支持,我们可以采用Self Host的方式使用任意类型的应用程序(控制台.Windows Forms应用.WPF)作为宿主. 对于SelfHost这样一个空的控制台 ...

  2. 【ASP.NET Web API2】初识Web API

    Web Api 是什么? MSDN:ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务 百度百科:Web API是网络应用程序接口. ...

  3. Python Web部署方式总结

    2019独角兽企业重金招聘Python工程师标准>>> 学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情.相比起来,Pytho ...

  4. quartz数据库方式与web工程整合

    quartz数据库方式与web工程整合 这两天在项目中有一个任务,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就想到了quartz这个开源调度组件,自己写这样一个类似的东西感觉 ...

  5. 通过web的方式动态查看tomcat的catalina.out的日志(web.py)

     Tomcat  Log  Viewer 通过web的方式动态访问Tomcat的catalina.out的日志. 1:安装web.py 参考:http://webpy.org/install.zh-c ...

  6. ABP中服务接口Web.Host部署踩坑

    部署ABP.Web.Host后报如下错误: 后来解决方案是因为服务器没有安装.netframe4.6. 去官网下载了.NDP472-KB4054531-Web.exe 更新了.netframe4.7. ...

  7. 浅谈常用的几种web攻击方式以及解决办法

    身在互联网的时候,web在给我们带来便利的同时,有些人也在盯着这些便利,因此出现了攻击网站的现象.所以我们在开发的时候,要注意这些容易被攻击的地方,以及做好防御的措施,下面将介绍一些这些 常见的攻击手 ...

  8. linux网络认证,在Linux下通过WEB认证方式上网

    在Linux下通过WEB认证方式上网 2005-03-23 eNet&Ciweek 说明:curl 是一个用 url 语法传输文件的命令行程序,支持 http,ftp 等协议,类似 wget. ...

  9. 常见的几种web攻击方式及原理

    常见的几种web攻击方式 SQL注入攻击 重定向攻击 上传文件攻击 Dos攻击(Denial of Service attack) 跨站点请求伪造(CSRF,Cross-Site Request Fo ...

最新文章

  1. 斯坦福连续发了四年的AI报告,今年讲了什么?
  2. VirtualBox32位系统上安装64位系统
  3. Linux下查看在运行进程的命令
  4. 精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?
  5. 能让你成为更优秀程序员的10个C语言资源
  6. java插入法排序_java如何用插入法对数组排序(GUI窗口实现)
  7. 【笔记】【C语言】任意进制之间的转换(支持小数部分)
  8. django 1.11.16之环境搭建
  9. 三角函数与反三角函数图像
  10. 如何激活win10系统?小白们无需到处问东问西了!
  11. java实现时间轮定时器_基于侵入式链表的时间轮定时器实现
  12. Echarts formatter综合写法
  13. NLP学习路径(三):NLP中文分词技术
  14. Kinect Fusion三维重建
  15. HTML期末作业-我的大学生活网页
  16. sqlserver插入数据时如何忽略主键重复的数据
  17. 基于51单片机控制的篮球比赛计时、计分系统设计与仿真(含设计图和C语言程序源码)
  18. java火车站售票源代码_火车站售票管理系统 JavaSe
  19. 家乐福推出供应商网站
  20. 2022年六款最好用的运动耳机、骨传导耳机推荐

热门文章

  1. 转: Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
  2. Gradle项目中gradle.build文件中的buildScript代码块
  3. Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
  4. android xml 指纹动画,如何检查设备是否具有指纹功能并在Android中使用
  5. python csdn技术社区_CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台...
  6. 不合法的媒体文件 id_注意!伦敦男孩、DKNY、Coach、地素... 这些品牌的服装,抽检不合格...
  7. CCNA重点难点:思科交换机生成树配置
  8. 运维基础(3)备份篇
  9. 【干货】大中型企业网络搭建
  10. Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22