2012-07-25 80 views
0

我已經把下面的代碼在.aspx頁面工作:頁面輸出緩存不跟蹤

<%@ Page Language="C#" AutoEventWireup="true" Inherits="CarWale.CarDataIO.MasterDataEntry" Trace="true"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<%@ OutputCache Duration="10" VaryByParam="none" %> 

<head runat="server"> 
<title>Master Data Entry</title> 
<link href="/css/style.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> <%= DateTime.Now.ToString() %></div> 
</form> 
</body> 
</html> 

當上述網頁與跟蹤=「假」,代碼是完全爲預期運行呈現。如預期的那樣,該頁面正在緩存並且每10秒後更改日期時間。

但是,當應用Trace =「true」時,即使在10秒的持續時間完成之前,每次頁面刷新時,所有頁面緩存都會丟失,並且DateTime發生更改。我認爲這是ASP.NET框架中的一個嚴重錯誤。

任何人都可以引導我,我要去哪裏錯了嗎?

回答

1

我不相信這是一個錯誤,但只是追蹤的結果,並允許它輸出到頁面。

如果您使用這些設置進行跟蹤web.config它應該工作。

<trace enabled="true" requestLimit="1000" localOnly="false" pageOutput="false"/> 

這裏,pageOutput="false"將防止直接在頁面上正在顯示的追蹤,現在只能用TraceViewer訪問。要查看跟蹤,只需將\Trace.axd添加到您的asp.net頁面的url(選擇default.aspx即可獲得與之前相同的結果頁面)。

如果pageOutput已禁用,則跟蹤現在不再阻止輸出緩存。