1.1.2 以Web Host方式寄宿Web API
采用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.3 以Self Host方式寄宿Web API
寄宿Web API不一定需要IIS的支持,我们可以采用Self Host的方式使用任意类型的应用程序(控制台.Windows Forms应用.WPF)作为宿主. 对于SelfHost这样一个空的控制台 ...
- 【ASP.NET Web API2】初识Web API
Web Api 是什么? MSDN:ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务 百度百科:Web API是网络应用程序接口. ...
- Python Web部署方式总结
2019独角兽企业重金招聘Python工程师标准>>> 学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情.相比起来,Pytho ...
- quartz数据库方式与web工程整合
quartz数据库方式与web工程整合 这两天在项目中有一个任务,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就想到了quartz这个开源调度组件,自己写这样一个类似的东西感觉 ...
- 通过web的方式动态查看tomcat的catalina.out的日志(web.py)
Tomcat Log Viewer 通过web的方式动态访问Tomcat的catalina.out的日志. 1:安装web.py 参考:http://webpy.org/install.zh-c ...
- ABP中服务接口Web.Host部署踩坑
部署ABP.Web.Host后报如下错误: 后来解决方案是因为服务器没有安装.netframe4.6. 去官网下载了.NDP472-KB4054531-Web.exe 更新了.netframe4.7. ...
- 浅谈常用的几种web攻击方式以及解决办法
身在互联网的时候,web在给我们带来便利的同时,有些人也在盯着这些便利,因此出现了攻击网站的现象.所以我们在开发的时候,要注意这些容易被攻击的地方,以及做好防御的措施,下面将介绍一些这些 常见的攻击手 ...
- linux网络认证,在Linux下通过WEB认证方式上网
在Linux下通过WEB认证方式上网 2005-03-23 eNet&Ciweek 说明:curl 是一个用 url 语法传输文件的命令行程序,支持 http,ftp 等协议,类似 wget. ...
- 常见的几种web攻击方式及原理
常见的几种web攻击方式 SQL注入攻击 重定向攻击 上传文件攻击 Dos攻击(Denial of Service attack) 跨站点请求伪造(CSRF,Cross-Site Request Fo ...
最新文章
- 斯坦福连续发了四年的AI报告,今年讲了什么?
- VirtualBox32位系统上安装64位系统
- Linux下查看在运行进程的命令
- 精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?
- 能让你成为更优秀程序员的10个C语言资源
- java插入法排序_java如何用插入法对数组排序(GUI窗口实现)
- 【笔记】【C语言】任意进制之间的转换(支持小数部分)
- django 1.11.16之环境搭建
- 三角函数与反三角函数图像
- 如何激活win10系统?小白们无需到处问东问西了!
- java实现时间轮定时器_基于侵入式链表的时间轮定时器实现
- Echarts formatter综合写法
- NLP学习路径(三):NLP中文分词技术
- Kinect Fusion三维重建
- HTML期末作业-我的大学生活网页
- sqlserver插入数据时如何忽略主键重复的数据
- 基于51单片机控制的篮球比赛计时、计分系统设计与仿真(含设计图和C语言程序源码)
- java火车站售票源代码_火车站售票管理系统 JavaSe
- 家乐福推出供应商网站
- 2022年六款最好用的运动耳机、骨传导耳机推荐
热门文章
- 转: Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- Gradle项目中gradle.build文件中的buildScript代码块
- Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
- android xml 指纹动画,如何检查设备是否具有指纹功能并在Android中使用
- python csdn技术社区_CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台...
- 不合法的媒体文件 id_注意!伦敦男孩、DKNY、Coach、地素... 这些品牌的服装,抽检不合格...
- CCNA重点难点:思科交换机生成树配置
- 运维基础(3)备份篇
- 【干货】大中型企业网络搭建
- Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22