8
私は基本的なwebAPIプロジェクト(webAPIをチェックして空白のWebプロジェクト)を作成し、プロジェクトにowin nugetパッケージを追加しました。ミドルウェアクラスがapiリクエストで呼び出されない
- Microsoft.AspNet.WebApi.Owin
- Microsoft.Owin.Host.SystemWeb
- Owin
私は、ロギングクラスを作成し、起動
を経由して、それをフックアップしましたusing AppFunc = System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>;
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
Debug.WriteLine("Startup Called");
var config = new HttpConfiguration();
WebApiConfig.Register(config);
appBuilder.UseWebApi(config);
appBuilder.Use(typeof(LoggingMiddleware));
}
}
public class LoggingMiddleware
{
private AppFunc Next { get; set; }
public LoggingMiddleware(AppFunc next)
{
Next = next;
}
public async Task Invoke(IDictionary<string, object> environment)
{
Debug.WriteLine("Begin Request");
await Next.Invoke(environment);
Debug.WriteLine("End Request");
}
}
プロジェクトを実行すると、デフォルトのページが開き、Begin/Endリクエストが表示されます(2回、発生したtは)。
しかし、私が/api
ルート( `/ api/ping/'など)を呼び出そうとすると、要求は正常に完了しますが、ログに開始/終了要求の状態は表示されません。
私はこれで何が欠けていますか?
保存しました! :D –
> *これはnext.Invoke()*を呼び出すようには見えません。 C'mon microsoft ... –