Microsoft.Owin に用意されているエラーページが良い感じだった
これは OWIN に適用した Katana プロジェクトの、エラーページを表示させるミドルウェアを適用させた場合に表示されるエラーページです。
良いデザインだったので、ブログにかきます!
各タブで詳細をチェックできます。↓
ちなみに、↓はエラーページと一緒に用意されている、Welcome ページです。
顔マークをクリックすると、電灯がピカっとし、顔の表情が変わります。おしゃれ。
全く関係ないですけど比較として、↓は、ASP.NET の標準のエラーページ。
(||i =ω=`)ズーン
(||i =ω=`)ズーン
エラーページを表示するミドルウェアを使う方法
(手順は、Getting Started with OWIN and Katana に書いてあります。)
ASP.NET Empty のプロジェクトを用意し、NuGet から「Microsoft.Owin.Diagnostics」をインストします。
まずは、ASP.NET の Empty プロジェクトを作成します。
作成後、NuGet から下の 2 つのパッケージをインストします。
Install-package Microsoft.Owin.Host.SystemWeb.ja Install-Package Microsoft.Owin.Diagnostics.ja
前者は、IIS で OWIN をホストするためのもの、
後者は、今回のエラーページを表示するミドルウェアのパッケージです。
作成後、下のように OWIN の Startup クラスを用意します。
(VS 2013 だと、追加>新しい項目>OWIN Startup クラス で楽に追加できます)
using Microsoft.Owin; using Owin; using System; [assembly: OwinStartup(typeof(WebApplication18.Startup1))] namespace WebApplication18 { public class Startup1 { public void Configuration(IAppBuilder app) { app.UseWelcomePage(); app.UseErrorPage(); app.Run(context => { // New code: Throw an exception for this URI path. if (context.Request.Path.Value == "/fail") { throw new Exception("My Error"); } context.Response.ContentType = "text/plain"; return context.Response.WriteAsync("Hello, world."); }); } } }
app.UseWelcomePage();
app.UseErrorPage();
が、エラーページと Welcome ページを適用させているコードです。
F5 で起動し、「http://localhost:XXX/」にアクセスすると Welcome ページが、「http://localhost:XXX/fail」にアクセスするとエラーページが表示されます。
"OWIN" がどんな Interface で、"Middleware" はどのようなものか、体感的にわかる例かなーと思います。
補足
OWIN とは、サーバーとアプリケーションを分離、抽象化するためのインターフェイスです。Microsoft ではなく、コミュニティにより立ち上げられたものです。
Katana とは、OWIN に適用するためのパッケージ、ライブラリを提供するプロジェクトです。OWIN とは違い、Microsoft が提供します。Microsoft.Owin 名前空間にあるライブラリは、Katana プロジェクトに含まれます。
Katana では、OWIN に適用するため、実装レベルを4つの層に分けました。Host, Server, Middleware, Application です。この4つの層に OWIN のインターフェイスの線を加えると、”Host, Server ||OWIN|| Middleware, Application”な感じです。
今回紹介したエラーページや Welcome ページのパッケージは、この内の Middleware にあたります。