我使用LogParser COM API在我的WPF .NET 4.0应用程序中查询事件日志,但现在我遇到的问题是ExecuteQuery运行时间太长。在Winform + .NET 2.0的示例代码中,LogQueryClassClass的ExecuteQuery api立即返回。我的参数与样本相同,如下所示
var inputFormat = new COMEventLogInputContextClassClass
{
direction = "FW",
fullText = true,
resolveSIDs = false,
formatMessage = true,
formatMsg = true,
msgErrorMode = "MSG",
fullEventCode = false,
stringsSep = "|",
iCheckpoint = string.Empty,
binaryFormat = "HEX"
};
现在我只是感到困惑,因为对于那种与Winform + .NET 2.0和WPF + .NET 4.0行为不同的API没有任何意义。有人可以在这里启发我吗?
顺便说一下,我在示例应用程序和我的应用程序之间对远程服务器使用相同的查询,相同的参数。所以从理论上讲,性能应该是相同的,但现在通常在我的应用程序中ExecuteQuery大约需要5秒,但在示例应用程序中它会立即返回。但是,通过本地机器事件查询,ExecuteQuery会立即在两个应用程序中返回。
我的开发环境是Windows Server 2008 R2 + VS2010