【问题标题】:How to browse all session variables in debug mode?如何在调试模式下浏览所有会话变量?
【发布时间】:2012-08-11 19:50:11
【问题描述】:

我正在使用 Microsoft Visual Studio 2010 Professional 并开发一个 asp.net / C# 应用程序。 在调试模式下,我可以在“Locals”选项卡下看到局部变量,还有一个叫做“this”的东西可以扩展成多个树结构。 但是,我无法在任何地方找到我的会话变量名称/值对。

一位朋友建议我使用“即时窗口”选项卡并输入我的 Session 变量的名称(即,Session["SomeValue"] 并按 Enter。这确实给了我 Session 变量的值。这很简单对于单个会话变量来说已经足够了,但是在处理多个变量时就变得有点麻烦了。

无论如何,我是否可以浏览到存储所有会话变量的键/值对的部分,就像我可以为局部变量一样?

【问题讨论】:

    标签: c# visual-studio-2010 debugging session-variables code-behind


    【解决方案1】:

    可能有一种更优雅的方式,但如果我记得你可以在启用跟踪时转储会话名称/值对。

    • 启用跟踪
    • 执行一个页面
    • 跟踪信息或者附加到底部,或者在~/Trace.axd

    在 web.config 中

    <configuration>
      <system.web>
        <trace enabled="true" requestLimit="40" pageOutput="true|false" />
      </system.web>
    </configuration>
    

    http://msdn.microsoft.com/en-us/library/bb386420.aspx

    当然,这仅在对象有有意义的字符串表示时才有用。

    您还可以考虑编写自定义可视化工具(我相信这是正确的术语),让您可以使用自己的自定义功能检查类型。我已经看到这样做是为了检查动态方法,它非常有用,尽管我想写一个会很费力。

    【讨论】:

    • 感谢您的回复。这绝对比使用“即时窗口”更方便,但我仍然想知道是否有某种方法可以通过 IDE 查看所有 Session 值?主要是因为我想将此与页面完全呈现之前可能发生的调试/断点结合起来。
    【解决方案2】:

    也许您可以尝试使用 Watch Windows。类型

    httpContext.Session["your session variable name"]
    

    【讨论】:

    • 这就是 LOL 的窗格
    • HttpContext.Current.Session["your session variable name"]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2013-01-05
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多