【问题标题】:Create an IIS web request activity light创建 IIS Web 请求活动指示灯
【发布时间】:2015-06-08 22:28:17
【问题描述】:

是否可以在 Windows 桌面上创建一个活动/闪烁灯来指示 IIS 网页请求何时进入?我们希望在我们的服务器上找到某种每分钟请求数的指示器,有点像硬盘驱动器执行繁重的 I/O 操作时会看到的闪烁灯。然而,这将是一个闪烁的软件指示灯,并且是查看当前网站活动的一种非常简单的方法。

【问题讨论】:

    标签: asp.net iis iis-7 iis-7.5


    【解决方案1】:

    我可以看到两个解决方案:

    1. 您可以使用性能计数器访问一些 IIS 信息。 W3SVC_W3WP 组的 Requests / Sec 计数器将为您提供 IIS 服务器每秒响应的请求数。有关可用 IIS 性能计数器的更多信息,请参阅New worker process performance counters in IIS7

      var counter = new PerformanceCounter("W3SVC_W3WP", "Requests / Sec", "_Total", true);
      while (true)
      {
          var requestPerSecond = (Int32)counter.NextValue();
      
          // do whatever you want
      
          Console.WriteLine(requestPerSecond);
          Thread.Sleep(1000);
      }
      
    2. 如果您想为每个请求闪烁一个虚拟 LED,以前的解决方案是不够的。您可以使用自定义IHttpModule 拦截查询,该IHttpModule 将与您的虚拟领导进行通信。

      public class BlinkModule : IHttpModule
      {
          public void Init(HttpApplication context)
          {
              context.EndRequest += context_EndRequest;
          }
      
          private void context_EndRequest(Object sender, EventArgs e)
          {
              Task.Run(() =>
              {
                  // call your virtual led using named pipe or whatever you want 
              });
          }
      
          public void Dispose()
          { }
      }
      

      您的虚拟 LED 应用程序应该有一种机制,可以让它从外部应用程序闪烁,例如,您可以使用带有命名管道绑定的 WCF 服务来做到这一点。

    【讨论】:

      猜你喜欢
      • 2018-07-03
      • 2022-06-22
      • 2020-08-20
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多