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"
};
そのAPIがWinform + .NET 2.0とWPF + .NET 4.0で異なる動作をするのは意味がないので、今私は混乱しています。誰かがここで私を啓発できますか?
ところで、サンプル アプリと私のアプリの間のリモート サーバーに対して同じクエリ、同じパラメーターを使用しています。したがって、理論的にはパフォーマンスは同じはずですが、通常、私のアプリでは ExecuteQuery に約 5 秒かかりますが、サンプル アプリではすぐに戻ります。ただし、ローカル マシン イベント クエリでは、両方のアプリで ExecuteQuery がすぐに返されます。
私の開発環境は Windows Server 2008 R2 + VS2010 です