【问题标题】:How to Monitor HTTP Requests Directly From C# Server Console? [closed]如何直接从 C# 服务器控制台监控 HTTP 请求? [关闭]
【发布时间】:2014-08-24 20:31:11
【问题描述】:

有谁知道如何让 C# 服务器应用程序在控制台中运行以显示来自客户端的 HTTP 请求,如图所示?

http://imgur.com/filhZJZ

提前致谢!

【问题讨论】:

  • 谢谢。这是一个很好的答案。实际上是 log4net 产生了这个输出,但这几乎一样好。
  • 欢迎来到Stack Overflow。此处的问题应显示研究工作或尝试。请拍下tour

标签: c#


【解决方案1】:

如果您只想启动 HTTP 服务器并将请求写入控制台,那么使用 OWINKatana 应该很容易完成。只需安装以下 NuGet 包:

  • Microsoft.Owin.Hosting
  • Microsoft.Owin.Host.HttpListener

并使用以下内容:

public static class Program
{
    private const string Url = "http://localhost:8080/";

    public static void Main()
    {
        using (WebApp.Start(Url, ConfigureApplication))
        {
            Console.WriteLine("Listening at {0}", Url);
            Console.ReadLine();
        }
    }

    private static void ConfigureApplication(IAppBuilder app)
    {
        app.Use((ctx, next) =>
        {
            Console.WriteLine(
                "Request \"{0}\" from: {1}:{2}",
                ctx.Request.Path,
                ctx.Request.RemoteIpAddress,
                ctx.Request.RemotePort);

            return next();
        });
    }
}

您当然可以根据自己的喜好调整输出,访问完整的请求和响应对象。

它会给你这样的东西:

【讨论】:

    【解决方案2】:

    您可以在Web API 中使用System.Diagnostics Tracing 执行此操作。在 asp.net 网站上,您将能够阅读 a detailed article

    另一种可能性是打开 IIS 日志记录,然后读取日志文件。我不太确定这是如何完成的,这正是我在 apache2/linux 上所做的,您可以在其中 tail -f log。我读过一些关于 powershell 等价物的东西,但不是针对控制台应用程序,所以我想我会坚持使用 Tracing。

    编辑: 在 SO 上环顾四周后,我发现了这个类似的问题和相关答案: How do I see the raw HTTP request that the HttpWebRequest class sends?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 2021-05-31
      • 1970-01-01
      相关资源
      最近更新 更多