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>

当上面的页面使用 Trace="false" 呈现时,代码运行正常。该页面正在被缓存,并且 DateTime 按预期每 10 秒后更改一次。

但是,当应用 Trace="true" 时,所有页面缓存都丢失了,并且每次刷新页面时 DateTime 都在更改,甚至在 10 秒持续时间完成之前。我认为这是 ASP.NET 框架中的一个严重错误。

谁能指导我哪里出错了?

4

1 回答 1

1

我不认为这是一个错误,而只是跟踪并允许它输出到页面的结果。

如果您使用这些设置进行跟踪,web.config它应该可以工作。

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

在这里,pageOutput="false"将阻止跟踪直接显示在页面上,现在只能通过TraceViewer访问。要查看跟踪,只需附加\Trace.axd到您的 asp.net 页面的 url(选择default.aspx以获取与之前相同的结果页面)。

禁用后,跟踪现在pageOutput将不再阻止输出缓存。

于 2012-08-17T11:11:06.997 回答