Mainly Devel Notes

Twitter, GitHub, StackOverflow: @ovrmrw (short hand of "overmorrow" that means the day after tomorrow)

Topshelf + OWIN + WebAPI + Ninject でセルフホストの雛形を作った

とりあえずやりたいことの雛形が出来たので取り急ぎメモ。
要するにIISを使わずにWindowsサービスとしてWebAPIサーバーを稼働させたかった、という目的です。
これはTopshelfというパッケージを使うとあっさり解決できます。
Ninjectを使った依存性注入を調べる機会があったので、ついでにDIも実装しました。
StartupクラスのConfigurationメソッド内でHTTPレスポンスをXMLからJSONに変更したりトレーシングを設定したりもしています。
.NET Frameworkのバージョンは4.5。

まずVisual Studioを開いてコンソールアプリケーションを作成する。
次に以下のパッケージをインストール、最後にアップデート。

install-package topshelf
install-package ninject.web.webapi.owinhost
install-Package Microsoft.AspNet.WebApi.Owinselfhost
install-Package Microsoft.AspNet.WebApi.Tracing
install-package entityframework //今回のサンプルでは使わない。
install-package nlog //今回のサンプルでは使わない。
update-package

Program.cs の中身↓(サンプルなので無理やり1ファイルにまとめてます)

Topshelf + OWIN Self-Host + ASP.NET WebAPI + Ninje ...