解析查询时出错:指定的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);
}
答案 0 :(得分:1)
&lt; 1&gt; “魔术快捷方式”仅适用于 IISW3C 输入格式,该格式是解析IIS生成的W3C日志文件的格式。在您的代码中,您使用的是 W3C 输入格式,该格式解析通用的W3C格式的日志,因此对&lt; 1&gt; 一无所知。
答案 1 :(得分: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);