0

解析查询时出错:指定的 FROM-ENTITY "<1>" 无效 [文件名、目录名或卷标语法不正确。]

<1>在 Log Parser 2.2 中的 sql 中使用时正在工作,该文件夹存在。如果我关注文章 - ADO.NE 的 LogParser DataProvider,查询正在工作

        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> “魔术快捷方式”仅适用于IISW3C输入格式,即解析IIS 生成的W3C 日志文件的格式。在您的代码中,您使用的是W3C输入格式,它解析通用 W3C 格式的日志,因此对<1>一无所知。

于 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 回答