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

來源:互聯網
上載者:User

標籤:style   blog   class   code   c   tar   

Asp.Net WebAPI產生的是一個程式集,並不是獨立的進程,因此,要啟動並執行時候必須將其承載在相應的宿主上,一般比較常見的是IIS承載。很多時候,我們為了簡化部署或者功能整合,需要將其承載到獨立的進程上,這種方式一般稱之為Self-Host,本文就簡單的介紹一下WebAPI的SefHost方法。

首先在Nuget上安裝Microsoft.AspNet.WebApi.SelfHost庫。

    

附上我們的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 。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.