首先,我想建议我对 IIS 非常陌生,因此对于任何明显的问题提前表示歉意。
我已经围绕这个主题进行了一些研究,但我的发现并没有定论。
这是我的场景;
我目前在我正在远程处理的服务器上运行 IIS 6,该服务器托管了大约 20 个站点。
我已经确定我可以使用事件查看器浏览不同 Web 应用程序上发生的错误。
我目前的问题是,似乎没有办法在“每个应用程序”的基础上过滤掉事件日志,而是根据它们发生的时间随机出现。还有混合 ASP.NET Web 事件、IIS-W3SVC-WP 警告等。
要确定哪个警告分配给哪个应用程序,我必须右键单击错误,转到“事件属性”和“应用程序路径”,例如,我的“HotelBookingSystem”路径。它的应用程序路径将是“D:inetpub\wwwroot\HotelBookingSystem”。
我的问题是,有没有办法对每个应用程序的事件日志进行排序?我最理想的做法是按“应用程序路径”过滤所有结果。
我已经安装了 Microsoft 的 Log Parser Studios,因此相信可能有一种方法可以使用它来运行查询,但我对 SQL 的了解还不足以尝试创建这样的查询。
任何帮助将不胜感激。
我已经设法解决了这个问题,但这是一个相当冗长的方法。
在“事件查看器”上,我右键单击“应用程序”窗口日志并将整个日志保存到 .txt 文件中。
我将此 .txt 文件从远程服务器复制到本地计算机上。
我在我的机器上安装了 Log Parser 2.2(可以在这里下载
我通过在本地计算机上打开命令提示符并导航到我安装它的位置来访问 Log Parser,例如 Program Files (x86) > Log Parser 2.2 >。
接着,我输入了以下命令来搜索字符串(在我的例子中是应用程序名称)以及日期,这样我就可以将搜索范围缩小到特定日期。我还在数据网格中打印了结果;
您还可以选择将结果放入输出文件中,在我的情况下是;
这可能不是最好的方法,但它对我有用。
尝试使用
wevtutil
(这是一个用于管理事件的 Windows命令行实用程序),看看您是否可以提出适当的查询。请参阅https://technet.microsoft.com/en-us/magazine/dd310329.aspx
和查询命令的帮助屏幕:
wevtutil qe /?
如果您更喜欢基于对话框的解决方案,请尝试在事件查看器上进行XPath 查询,如下所述:http: //blog.backslasher.net/filtering-windows-event-log-using-xpath.html 但恐怕 Windows 事件日志仅支持 XPath 1.0 的一个子集。它只包含 3 个函数:位置、波段、时间差异。
Get-WinEvent
Powershell命令也有一些有趣的选项。在您的(已编辑)问题中,您声明要使用描述字段的子字符串进行过滤。我认为使用内置过滤器不可能做到这一点,我会使用
wevtutil
命令将所有相关事件转储到 XML,然后使用一些功能齐全的解析器进行过滤(可以是简单的字符串搜索,或者具有完整 XPath 功能的 XML 解析器)。