65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 诊断页面,用于转储 ASP.NET 和环境配置

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.55/5 (6投票s)

2011 年 7 月 21 日

CPOL

2分钟阅读

viewsIcon

56037

一个方便的 ASPX 页面,您可以将其复制到任何网站上,它会转储环境设置和常见的 ASP.NET 设置,以帮助诊断各种问题。

Diagnostic_Page_Dump.png

引言

有时您需要快速查看您的 ASP.NET 站点是否在正确的服务器上运行,从正确的代码位置运行,使用正确的 .NET 运行时,在正确的操作系统和硬件环境下运行。 尤其是在您运行在共享主机上并且无法访问服务器配置的情况下,转储环境变量可以为您提供有关服务器处理器的宝贵信息,并且您可以确定托管公司是否将您放在廉价服务器上。 这里有一个方便的 ASPX 页面,您可以将其复制到任何网站上,它会转储环境设置和常见的 ASP.NET 设置,以帮助诊断各种问题。

ASP.NET_Diagnostic_Page.png

它会转储所有环境变量。 我在截图中仅显示了几个。 然后它会转储一些有用的请求属性。 然后它具有 ASP.NET 跟踪输出,其中包含非常有用的内容。

该页面的代码非常简单: 

<%@ Page Language="C#" AutoEventWireup="true" Trace="true" TraceMode="SortByCategory" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>ASP.NET Diagnostic Page</title>
</head>
<body>
  <form id="form1" runat="server">
  
  <h2>Environment Variables</h2>
  <pre>
  <table>  
<%
    var variables = Environment.GetEnvironmentVariables();
    foreach (DictionaryEntry entry in variables)
    {
      Response.Write("<tr><td>");
      Response.Write(entry.Key);
      Response.Write("</td><td>");
      Response.Write(entry.Value);
      Response.Write("</td></tr>");
    }
  %>
  </table>
  </pre>

  <h2>Misc</h2>
  <pre>
  Response.Filter = <%= Request.Filter.ToString() %>
  Request.ApplicationPath = <%= Request.ApplicationPath %>
  Request.PhysicalApplicationPath = <%= Request.PhysicalApplicationPath %>
  Request.PhysicalPath = <%= Request.PhysicalPath %>
  Request.UrlReferrer = <%= Request.UrlReferrer %>
  Request.UserLanguages = <%= string.Join(",", (Request.UserLanguages ?? new string[0])) %>
  </pre>
  
  </form>
</body>
</html>

这就是 Dump.aspx 中的全部内容。 只需将此页面放到网站上,您就可以开始使用。 

如何使用此页面

您可以使用此页面来测试许多事情

  • 转储浏览器发送到您网站的 Cookie,并查看 Cookie 是否正确。 有时,某些代码会在浏览器中注入错误的 Cookie,并导致您的代码失败。 使用此页面,您可以进行测试。
  • 查看服务器是否安装了正确的 .NET Framework。
  • 通过查看机器名称来验证站点是否正在从正确的 Web 服务器运行。
  • 测试负载均衡器是否正常工作。 将此页面部署到您的所有 Web 服务器上。 然后不断刷新页面。 您应该看到在不同的页面加载中转储了不同的机器名称。
  • 检查 Session 中有什么内容,并查看 Session 中是否存储了可能导致应用程序失败的错误内容。 检查是否根本创建了 Session。
  • 测试您是否获得了正确的请求标头。
  • 将此页面设置为某个表单的 POST 页面,并向此页面发布以查看发布了什么内容。

这些只是您可以使用此页面来测试您的 Web 服务器、应用程序代码、表单发布、AJAX 调用等方式中的一些。

© . All rights reserved.