AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 433750
Accepted
Steven Murawski
Steven Murawski
Asked: 2012-10-02 10:29:53 +0800 CST2012-10-02 10:29:53 +0800 CST 2012-10-02 10:29:53 +0800 CST

如何使用 WMI 监控 IIS 7.5 应用程序池?

  • 772

我目前在 Server 2008 R2 上的负载平衡 IIS 集群 (NLB) 中有一个应用程序。此应用程序利用了一些遗留的数据库访问代码,这些代码偶尔会失败以禁用应用程序池。

我想放置一个 WMI 事件观察器来监视应用程序池状态的变化(欢迎其他建议),如果它进入停止状态,它将重新启动应用程序池。

这是在可以推送新代码之前的临时解决方法,但这必须经过 Dev/QA/UAT 周期。

在 root\webadministration 命名空间中有一个用于 ApplicationPool 的 WMI 类,但是要获取状态,您必须对该对象调用 GetState 方法,所以我不确定如何使用 WMI 事件来观察它。

iis
  • 2 2 个回答
  • 3187 Views

2 个回答

  • Voted
  1. Best Answer
    Greg Askew
    2012-10-02T12:00:03+08:002012-10-02T12:00:03+08:00

    您可以使用内置的事件日志监控来执行此操作。

    如果应用程序池由于快速故障保护而关闭,系统事件日志中可能有一个事件 ID 5002,如下所示:

    “由于为该应用程序池服务的进程中的一系列故障,应用程序池‘AppPoolName’被自动禁用。”

    为自定义事件日志触发器创建计划任务。手动 XML 查询看起来像这样:

    <QueryList>
     <Query Id="0" Path="System">
     <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WAS'] and (EventID=5002)]] 
     and *[EventData[Data[@Name='AppPoolID'] and (Data='YourAppPoolFriendlyName')]]</Select>
     </Query>
    </QueryList>
    

    您的计划任务操作可能是运行一个脚本,该脚本运行 appcmd 以重新启动特定的应用程序池。

    appcmd recycle apppool /?
    Recycle application pool
    
    APPCMD recycle APPPOOL <identifier> <-parameter1:value1 ...>
    
    Recycles the specified application pool, recycling its the worker processes.
    The exact application pool identifier must be provided and must resolve to an
    existing application pool.
    
    Supported parameters:
    
     identifier (required)
    
        Application pool name of the application pool to recycle
    
     /apppool.name
    
        Application pool name of the application pool to recycle (same as
        identifier)
    
    
    Examples:
    
     appcmd recycle apppool "MyAppPool"
    
        Recycle the application pool "MyAppPool".
    

    如果同一台服务器上有多个应用程序池,您可能需要优化 XML 过滤器以指定应用程序池 ID。以下是示例事件 XML 文本:

    - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    - <System>
      <Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /> 
      <EventID Qualifiers="49152">5002</EventID> 
      <Version>0</Version> 
      <Level>2</Level> 
      <Task>0</Task> 
      <Opcode>0</Opcode> 
      <Keywords>0x80000000000000</Keywords> 
      <TimeCreated SystemTime="2012-10-01T19:41:43.000000000Z" /> 
      <EventRecordID>408764</EventRecordID> 
      <Correlation /> 
      <Execution ProcessID="0" ThreadID="0" /> 
      <Channel>System</Channel> 
      <Computer>WEBSERVERNAME.company.com</Computer> 
      <Security /> 
      </System>
    - <EventData>
      <Data Name="AppPoolID">YourAppPoolFriendlyName</Data> 
      <Binary /> 
      </EventData>
      </Event>
    

    有关事件日志高级过滤的信息:
    https ://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event-viewer.aspx

    使用 APPCMD 回收应用程序池:
    http ://technet.microsoft.com/en-us/library/cc770764%28v=ws.10%29.aspx

    • 3
  2. MajorRefactoring
    2012-11-15T10:24:45+08:002012-11-15T10:24:45+08:00

    仅供参考,如果由于快速故障转移保护而失败,您可以禁用它而不是小心翼翼地绕过它:

    https://stackoverflow.com/a/4802309/448129

    • 3

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve