博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用ASP.Net WebAPI构建REST服务(六)——Self-Host
阅读量:4688 次
发布时间:2019-06-09

本文共 1335 字,大约阅读时间需要 4 分钟。

Asp.Net WebAPI生成的是一个程序集,并不是独立的进程,因此,要运行的时候必须将其承载在相应的宿主上,一般比较常见的是IIS承载。很多时候,我们为了简化部署或者功能集成,需要将其承载到独立的进程上,这种方式一般称之为Self-Host,本文就简单的介绍一下WebAPI的SefHost方法。

首先在Nuget上安装Microsoft.AspNet.WebApi.SelfHost库。

    

附上我们的WebAPI控制器

    public class ValuesController : ApiController

    {
        public IEnumerable<string> Get()
        {
            return new string[] { "111", "222" };
        }
    }

接下来的工作就是启动我们的服务器了。

    class Program

    {
        static void Main(string[] args)
        {

            //Assembly.Load("WebApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");    //加载外部程序集

            var config = new HttpSelfHostConfiguration("http://localhost:8080");
            config.Routes.MapHttpRoute(
                "API Default", "api/{controller}/{id}",
                new { id = RouteParameter.Optional });
            using (var server = new HttpSelfHostServer(config))
            {
                server.OpenAsync().Wait();
                Console.WriteLine("Press Enter to quit.");
                Console.ReadLine();
            }
        }
    }

从上面的代码可以看出,配置文件和Asp.Net程序中基本上是一样的,如果是直接用Asp.Net项目中生成的DLL的话,我们也可以直接用其WebApiConfig.Register方法来进行配置的(需要像第一行注掉的那样使用Assembly.Load加载程序集)。下面一段就是启动服务器了,也没有太多好介绍啊的。更多内容可以参看MSDN文档:

值得一提的是,SelfHost是在一个独立进程中启动了Http服务,也可以是说,它是一个mini版的Http服务器,我之前介绍过,到了现在,用WebAPI的SelfHost方式是可以更加快捷的实现扩展性更好的Mini Http服务器的,当我们需要一个简单的Http服务的时候,可以使用这种方式。

除了这种方式外,微软更加推荐用功能更加强大的,由于目前对OWIN还没有怎么研究过,后续有时间再介绍一下它。

另外,除了IIS、SelfHost等方式外,云时代发布到Windows Azure也是非常便捷的,这里就不做多少介绍了,详细内容请参看MSDN文档: 。

转载于:https://www.cnblogs.com/TianFang/p/3728760.html

你可能感兴趣的文章
Kruskal算法(转)
查看>>
CSS3 Media Queries实现响应式布局
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
快速转移数据的要领
查看>>
windows情况下的oracle效力
查看>>
*nix-style:定制 bash 提示符
查看>>
Informix IDS 11系统解决(918查验)认证指南,第 7 部分: IDS复制(7)
查看>>
解决Charles Response 中文乱码
查看>>
Spring Boot 分布式Session状态保存Redis
查看>>
Unity笔记——1.Unity3D脚本基础
查看>>
List分组 用于客服对话分组场景
查看>>
mybatis的二表联合查询
查看>>
全排列与 康托展开
查看>>
eclipse不格式化注释
查看>>
C语言结构体初始化(转载)
查看>>
系统剪切板的使用UIPasteboard
查看>>