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






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

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

它会转储所有环境变量。 我在截图中仅显示了几个。 然后它会转储一些有用的请求属性。 然后它具有 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 调用等方式中的一些。