码迷,mamicode.com
首页 > Windows程序 > 详细

使用ASP.Net WebAPI构建REST服务(六)——Self-Host

时间:2014-05-14 23:44:42      阅读:549      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   tar   

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

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

    bubuko.com,布布扣

附上我们的WebAPI控制器

    publicclassValuesController : ApiController
    {
        publicIEnumerable<string> Get()
        {
            returnnewstring[] { "111", "222" };
        }
    }

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

    classProgram
    {
        staticvoid Main(string[] args)
        {
            var config = newHttpSelfHostConfiguration("http://localhost:8080");

            config.Routes.MapHttpRoute(
                "API Default", "api/{controller}/{id}",
                new { id = RouteParameter.Optional });

            using (var server = newHttpSelfHostServer(config))
            {
                server.OpenAsync().Wait();
                Console.WriteLine("Press Enter to quit.");
                Console.ReadLine();
            }
        }
    }

从上面的代码可以看出,配置文件和Asp.Net程序中基本上是一样的,如果是直接用Asp.Net项目中生成的DLL的话,我们也可以直接用其WebApiConfig.Register方法来进行配置的。下面一段就是启动服务器了,也没有太多好介绍啊的。更多内容可以参看MSDN文档:http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api

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

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

另外,除了IIS、SelfHost等方式外,云时代发布到Windows Azure也是非常便捷的,这里就不做多少介绍了,详细内容请参看MSDN文档:http://www.asp.net/web-api/overview/hosting-aspnet-web-api

使用ASP.Net WebAPI构建REST服务(六)——Self-Host,布布扣,bubuko.com

使用ASP.Net WebAPI构建REST服务(六)——Self-Host

标签:style   blog   class   code   c   tar   

原文地址:http://www.cnblogs.com/TianFang/p/3728760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!