0

クエリの解析エラー: 指定された FROM-ENTITY "<1>" は無効です [ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。]

<1>Log Parser 2.2 で sql で使用すると動作し、フォルダが存在します。次の記事 - LogParser DataProvider for ADO.NE の場合、クエリは機能しています

        try
        {
            ILogRecord rowLP = null;
            ILogRecordset rsLP = null;

            LogQueryClass logQuery = new LogQueryClass();
            COMW3CInputContextClass comW3CInputContext = new COMW3CInputContextClass();

            string strSQL = @"SELECT " +
                         @"COUNT(*) AS [Requests], " +
                         @"DIV(DIV(SUM(cs-bytes), 1024), 1024) AS [MBytes received], " +
                         @"DIV(DIV(SUM(sc-bytes), 1024), 1024) AS [MBytes sent], " +
                         @"c-ip AS [IP Address], cs(User-Agent) AS [User agent], " +
                         @"MAX(date) AS [Last visit] " +
                         @"FROM <1> " +
                         @"GROUP BY [IP Address], [User agent] " +
                         @"ORDER BY [Requests] DESC";


            // run the query against W3C log
            rsLP = logQuery.Execute(strSQL, comW3CInputContext);
            rowLP = rsLP.getRecord();


        }
        catch (System.Runtime.InteropServices.COMException exc)
        {
            Console.WriteLine("Unexpected error: " + exc.Message);
        }
4

2 に答える 2

1

< 1>「​​マジック ショートカット」は、IIS によって生成された W3C ログ ファイルを解析する形式であるIISW3C入力形式でのみ機能します。あなたのコードでは、一般的な W3C 形式のログを解析するため、<1>について何も知らないW3C入力形式を使用しています。

于 2013-03-10T09:35:03.130 に答える
0

このhttp://www.codeproject.com/Articles/13504/Simple-log-parsing-using-MS-Log-Parser-2-2-in-C-NEをフォローすると、機能していないことがわかりました。

COMW3CInputContextClass comW3CInputContext = new COMW3CInputContextClass();
rsLP = logQuery.Execute(strSQL, comW3CInputContext);

以下のように変更することで、クエリが機能するようになります

rsLP = logQuery.Execute(strSQL, null);
于 2013-01-10T04:23:38.790 に答える