[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>OWIN]] * 目次 [#p11234e4] #contents *概要 [#s2cb1789] -セルフホストやOWINミドルウェアを使用するために、パイプラインをOWIN化すること。 -既存のWebアプリケーションは、IIS(System.Web)を使用しているため、~ IISでホストするためのMicrosoft.Owin.Host.SystemWebを使用することになる。 -手順 --[[ホスティング ランタイムをインストールする。>#le7af00c]] --[[利用したい、OWINミドルウェアをインストールする。>#k436c439]] --[[Startupクラスを追加して、OWIN関連の設定を行う。>#n017a299]] *ホスティング ランタイム [#le7af00c] **IIS [#s102fafa] -IIS でホストするには、Microsoft.Owin.Host.SystemWebを使用する。 -NuGet で「Microsoft.Owin.Host.SystemWeb」をインストール。 install-package Microsoft.Owin.Host.SystemWeb -System.Webのパイプラインを[[OWIN]]のパイプラインに流すことができる。 -これにより、[[OWIN]]のミドルウェアをASP.NET Web Formsや、MVC 5でも使用できる。 **OwinHost.exe [#ibe04f08] -Katana の OwinHost.exe でホストするには、OwinHostを使用する。 -NuGet で「OwinHost」をインストール。 install-package OwinHost *[[OWIN]]ミドルウェアのインストール [#qb0caac4] **[[ASP.NET Identity]] [#x8cab528] NuGet で「AspNet.Identity」をインストール。 Install-Package Microsoft.AspNet.Identity.Owin Install-Package Microsoft.AspNet.Identity.EntityFramework Update-Package Microsoft.AspNet.Identity.EntityFrameworkは、~ UserStoreクラスを自前で実装する場合、不要になる。 **[[ASP.NET SignalR]] [#x8cab528] NuGet で「SignalR」をインストール。 Install-Package Microsoft.AspNet.SignalR Update-Package **[[ASP.NET Web API>ASP.NET Web API#rabd29db]] [#n4d2e2af] NuGet で「WebApi.OwinSelfHost」をインストール。~ ※ セルフホストの場合 Install-Package Microsoft.AspNet.WebApi.OwinSelfHost Update-Package *[[OWIN]] Startupクラスの追加・登録 [#n017a299] [[OWIN]]パイプラインでミドルウェアをつなげ全体を処理する。 Startupクラスは、 -ホスティング ランタイムと -ミドルウェア を指定して使用できるようにする。 **共通 [#ye660630] 既存のBundle、Routing等をGlobal.asax.cs から OWIN Startup.cs に移動してもイイが、必要性は無い。 -c# - Do I need a Global.asax.cs file at all if I'm using an OWIN Startup.cs class and move all configuration there? - Stack Overflow~ http://stackoverflow.com/questions/20168978/do-i-need-a-global-asax-cs-file-at-all-if-im-using-an-owin-startup-cs-class-and **[[ASP.NET Identity]] [#u9644771] Startup クラスで ConfigureAuth(app)メソッドを実行する。 public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); app.MapSignalR(); } } ConfigureAuthメソッドはテンプレート上、Partialクラスに定義されている。 >結構大きめの実装なので割愛 必要に応じて、実際に[認証の変更]→[個人のユーザアカウント]のオプションで~ プロジェクトテンプレートを使用してプロジェクトを生成して確認すること。 **[[ASP.NET SignalR]] [#x21f54e2] Startup クラスで app.MapSignalR()メソッドを実行する。 public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); app.MapSignalR(); } } **[[ASP.NET Web API>ASP.NET Web API#rabd29db]] [#i12c4dba] Startup クラスで Routing定義を行いapp.UseWebApi()メソッドを実行する。~ ※ セルフホストの場合 public static class Startup { public static void ConfigureApp(IAppBuilder app) { // Configure Web API for self-host. HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); app.UseWebApi(config); } } .NET Frameworkのテンプレートでは、Routing定義は、~ Global.aspxのApplication_Startから呼びだされる~ RouteConfigクラスのRegisterRoutesメソッドで実行されれている。 *参考 [#m5f3b2af] **[[OWIN]]ミドルウェア [#kdac234f] -[[ASP.NET Identity]] -[[ASP.NET SignalR]] -[[ASP.NET Web API>ASP.NET Web API#rabd29db]] **手順 [#r4fa42fe] -Katana で Hello, world - miso_soup3 Blog~ http://miso-soup3.hateblo.jp/entry/2013/11/11/014258 -asp.net mvc - What is the new Startup.cs file for in Visual Studio 2013 projects? - Stack Overflow~ http://stackoverflow.com/questions/20034105/what-is-the-new-startup-cs-file-for-in-visual-studio-2013-projects -c# - Do I need a Global.asax.cs file at all if I'm using an OWIN Startup.cs class and move all configuration there? - Stack Overflow~ http://stackoverflow.com/questions/20168978/do-i-need-a-global-asax-cs-file-at-all-if-im-using-an-owin-startup-cs-class-and -OWIN Startup Class Detection | The ASP.NET Site~ https://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection >Every OWIN Application has a startup class where you specify components for the application pipeline.~ There are different ways you can connect your startup class with the runtime,~ depending on the hosting model you choose (OwinHost, IIS, and IIS-Express). ---- Tags: [[:.NET開発]], [[:OWIN]]