1.1.3 以Self Host方式寄宿Web API

摘要:
托管Web API不一定需要IIS支持。我们可以使用SelfHost来托管任何类型的应用程序。但是对于SelfHost,除了必要的路由注册之外,我们还需要完成一个额外的任务,即手动加载定义HttpController类型的程序集。

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

对于SelfHost这样一个空的控制台应用来说,除了需要引用WebApi的项目,还需要引用以下程序集

System.Web.Http

System.Web.Http.SelfHost

System.Net.Http

对于Web Host的方式寄宿Web API需要做的唯一一件事情是路由注册。但是对于Self Host来说,除了必须的路由注册,我们还需要完成额外的一件事,

即手工加载定义了HttpController类型的程序集。

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Reflection;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Web.Http;
usingSystem.Web.Http.SelfHost;

namespaceSeifHost
{
    classProgram
    {
        static void Main(string[] args)
        {
            Assembly.Load("WebApi, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null");

            HttpSelfHostConfiguration configuration = new HttpSelfHostConfiguration("http://localhost/selfhost");

            using (HttpSelfHostServer httpServer = newHttpSelfHostServer(configuration))
            {
                httpServer.Configuration.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id =RouteParameter.Optional });
                httpServer.OpenAsync();
                Console.WriteLine("我已启动,亲可以在浏览器预览了。");
                Console.Read();
            }

        }
    }
}

我们启动程序 F5

1.1.3 以Self Host方式寄宿Web API第1张

然后在浏览器输入http://localhost/selfhost/api/Contacts/001

1.1.3 以Self Host方式寄宿Web API第2张

ASP.NET Web API的Self Host寄宿方式通过HttpSelfHostServer来完成

免责声明:文章转载自《1.1.3 以Self Host方式寄宿Web API》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇asp.net分割字符串的几种方法版本管理工具Git(二)GitLab部署和配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Django(一):从socket到MVC

一、socket的http套路 web应用本质上是一个socket服务端,用户的浏览器是一个socket客户端。socket处在应用层与传输层之间,是操作系统中I/O系统的延伸部分(接口),负责系统进程和应用之间的通信。 HTTP协议又称超文本传输协议。 1 //浏览器发送一个HTTP请求; 2 //服务器收到请求,根据请求信息,进行函数处理,生成一个H...

成功解决问题:ModuleNotFoundError: No module named 'paddle'或者 No module named 'paddle.fluid'

安装paddle: 在pycharm输入:pip install paddle -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com  需要按要求安装common、dual、tight、data、prox模块          按要求装完common、dual、tight 、d...

ASP.NET Web API 2系列(一):初识Web API及手动搭建基本框架

 1.导言 随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数。全栈工程师的压力越来越大。 PC端,pad端,移动端App(安卓/IOS)的发展,使得前后端一体的开发模式十分笨重。因此,前后端分离是web发展的趋势,其中,RESTful API是目前前后端分离的最佳实践,ASP.NET Web API是在.NET Framework上构建RES...

网络编程之Socket代码实例

网络编程之Socket代码实例 一、基本Socket例子 Server端: # Echo server program import socket HOST = '' # Symbolic name meaning all available interfaces PORT = 50007 # A...

APICloud上啦加载下拉刷新模块

apicloud有自带的上啦加载下拉刷新,当让也可以用第三方或者在模块库里面找一个使用 一、下拉刷新,一下代码写在 apiready = function (){} 里面 apiready = function (){ //下拉刷新 api.setRefreshHeaderInfo({ visible...

【百度地图API】JS版本的常见问题

【新手必读】API常见问题 1、请问如何将我的店铺标注在百度地图上?我是否可以做区域代理?在百度地图上标注是否免费? 答复: 这里只负责API的技术咨询,不解决任何地图标注问题。在百度地图上标注自己公司,即气泡标注业务。该业务已外包给青岛亿搜,不属于API技术范畴。全国商户的标注需求,请致电:合作伙伴“青岛亿搜网络科技有限公司”咨询。联系电话:0532-6...