是否可以在aspx网页中跟踪/监视会话的值

本文关键字:监视 会话 跟踪 aspx 网页 是否 | 更新日期: 2023-09-27 18:21:00

我正在调试一个包含多个类的项目网站;虽然大多数代码都是用C#处理的,但在基于HTML的页面中有几个if语句,它们使用会话来更新自己。

例如,我按下一个按钮,基于HTML的页面调用一个Javascript函数,然后它调用一个C#函数。

<input class='buttonbrowse' type="button" name="btnShiftDate" value="..." <%=(requestApplicationForm.Paycode==null ? " disabled=disabled" : "")%> onclick="javascript:SelectExcessHrs_time();" id="Button1" />

这个函数进行大量计算,并将所有变量等存储在类"paycodeform"中。

在代码的末尾,返回以下内容:

Session["SubsidyApplicationForm"] = paycodeform;

回到HTML页面,会发生以下情况:

<%if(requestApplicationForm.Excessdatepunch!=null) {%>

等等。,等等。基本上,HTML页面中嵌入了内联C#代码(这就是我们所说的吗?)。很多代码。他们通过支付代码表单进行某种过滤。

Excessdatepunch是一个数组,它包含paycodeform传递回会话时的值。不幸的是,在HTML代码的某个地方,Excessdatepunch数组被清除,并重新提供默认值——在一长串代码中运行是令人沮丧的,而且更复杂的是,这种错误并不经常发生。

所以和标题一样,我想问一下是否有什么方法可以监控这些内嵌的C#代码。我知道在那里放置断点是行不通的,而在会话上放置手表并不能准确地提供内部工作,比如Excessdatepunch数组中的值。

是否可以在aspx网页中跟踪/监视会话的值

可以使用System.Diagnostics.Debugger.Break()中断ASPX中的代码执行。您还可以写入跟踪和调试侦听器。尝试调试以下代码示例:

<form id="form1" runat="server">
    <div>
        This is some HTML. The current time is:
        <%
            System.Diagnostics.Debugger.Break();
            Session["CurrentTime"] = DateTime.Now;
        %>
    </div>
    <%
        System.Diagnostics.Trace.WriteLine(Session["CurrentTime"]);
        System.Diagnostics.Debug.WriteLine(Session["CurrentTime"]);
        System.Diagnostics.Debugger.Break();
        Response.Write(Session["CurrentTime"]);
        Response.Write("<br/>");
    %>
    You should see the current date above this line.
</form>

如果要在页面中显示跟踪输出,请将Trace属性添加到<%@ Page %>标记:

<%@ Page Language="C#" Trace="true" ... %>

参考文献:

  • 演练:将ASP.NET跟踪与System.Diagnostics跟踪集成
  • 如何:为ASP.NET页启用跟踪