Logparser не работает в С#

Ошибка синтаксического анализа запроса: указанный FROM-ENTITY "‹1>" недействителен [неверный синтаксис имени файла, имени каталога или метки тома.]

<1> работает при использовании в sql в Log Parser 2.2, папка существует. Запрос работает, если я следую статье — LogParser DataProvider для 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);
        }

person user1865039    schedule 10.01.2013    source источник
comment
где это не работает, если работает в логпарсере?   -  person Yusubov    schedule 10.01.2013


Ответы (2)


"Волшебный ярлык" ‹1> работает только с входным форматом IISW3C, который анализирует файлы журналов W3C, созданные IIS. В своем коде вы используете входной формат W3C, который анализирует общие журналы в формате W3C и, таким образом, ничего не знает о ‹1>.

person Gabriele Giuseppini    schedule 10.03.2013

Я обнаружил, что они не работают, следуя этому 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);
person user1865039    schedule 10.01.2013