簡體   English   中英

如何在Windows 7上啟用OWIN日志記錄

[英]How to enable OWIN logging on Windows 7

我正在嘗試登錄到我的OWIN自托管解決方案。

我的MiddleWare課程如下:

public class HostingMiddleware : OwinMiddleware
{
    private readonly ILogger _logger;

    public HostingMiddleware(OwinMiddleware next, IAppBuilder builder)
        : base(next)
    {
        _logger = builder.CreateLogger<HostingMiddleware>();
    }

    public override Task Invoke(IOwinContext context)
    {
        _logger.WriteVerbose(string.Format("{0} {1}: {2}"));
        context.Response.Headers.Add("Content-Type", new[] 
                                                     { 
                                                        "text/plain"
                                                     });
        return Invoke(context);
    }
}

然后我在我的Startup類中使用它。

public class Startup
{
   public void Configuration(IAppBuilder builder)
   {
      // Initialize the configuration for Web API self-host.
      HttpConfiguration config = new HttpConfiguration();

      // Map the default Web API HTTP Route
      config.Routes.MapHttpRoute(
          name: "DefaultApi",
          routeTemplate: "api/{controller}/{id}",
          defaults: new { id = RouteParameter.Optional }
      );

      // Use Web API
      builder.UseWebApi(config);

      builder.Use<HostingMiddleware>(builder);
   }
}

當我刪除builder.Use<HostingMiddleware>(builder); 我可以發出HTTP請求並獲得響應,但是當我實現我的Middleware類時,我得到:

No WebSocket support detected, Windows 8 or later is required.

從那里開始,日志記錄不能正常工作。 當然有一種方法可以讓Windows 7環境中的日志記錄工作,否則功能會變得毫無用處? 關於我需要做什么的任何想法?

提前致謝。

您需要使用Next.Invoke(context)而不是您正在做的事情。

你在日志記錄中也有一個“bug” - 我不知道你想記錄什么 - 我添加了自己的。

祝你好運 - 我喜歡它。


public class HostingMiddleware : OwinMiddleware
{
    private readonly ILogger _logger;

    public HostingMiddleware(OwinMiddleware next, IAppBuilder builder)
        : base(next)
    {
        _logger = builder.CreateLogger();
    }

    public async override Task Invoke(IOwinContext context)
    {
        _logger.WriteVerbose(string.Format("{0} --- {1}", context.Request.Uri.AbsolutePath, context.Request.QueryString);
        await Next.Invoke(context);
    }
}

你必須閱讀: 理解OWIN,Katana和中間件管道

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM