按照此MSDN文章:IIS日誌分析 - 如何檢索引用者信息
它說cs(Referrer)
包含可以從IIS日誌文件中讀取的referer信息,。
我想顯示使用ASP.NET Repeater控件的日誌信息:
<asp:Repeater ID="rptlIISLogEntries" runat="server">
...
...
<ItemTemplate>
<tr>
<td><%# Eval("time")%></td>
<td><%# Eval("cs(Referrer)")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
與Eval("cs(Referrer)"
行拋出異常:
DataBinding:'System.Data.DataRowView' does not contain a property with the name 'cs'.
我的問題是,我該如何在中繼器中顯示REFERER信息?
解析日誌文件,並將其綁定到中繼器的代碼如下:
string theDate =txtDate.Text;
string FILE_NAME = @"\\" +txtMachine.Text +
@"\C$\WINNT\System32\LogFiles\" +
drpSiteBox.SelectedItem.Text + @"\ex" + theDate + ".log";
FileStream fs = new FileStream(FILE_NAME, FileMode.Open,
FileAccess.Read,FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs);
string strResult = sr.ReadToEnd();
sr.Close();
fs.Close();
sr=null;
fs=null;
string[] arLogLines = strResult.Split(Convert.ToChar("\n"));
dt = new DataTable("log");
string revisedColmNames=arLogLines[3].Replace("#Fields: ","");
string[] arColm=revisedColmNames.Split(Convert.ToChar(" "));
for(int j=0;j<arColm.Length;j++)
{
dt.Columns.Add(arColm[j]);
Debug.WriteLine(arColm[j]);
}
for (i =arLogLines.Length-1; i>3;i--)
{
// need this because some logs get additional data appended
// aren't unhandled exceptions great? The CLR just loves 'em...
try
{
dt.Rows.Add(arLogLines[i].Split(Convert.ToChar(" ")));
}
catch {}
}
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
注:這是相同的代碼在http://www.eggheadcafe.com/articles/20021203.asp
您是否正在記錄這些信息?你如何記錄它,以及如何檢索它? – Oded 2010-03-15 09:04:31
我登錄通過檢查INETMGR控制檯 啓用日誌記錄複選框的擴展屬性複選框還檢查 對於檢索我使用的文件流來分析日誌文件,然後使用顯示中繼asp.net是 – balalakshmi 2010-03-15 09:47:38