Как печатать аналогичную информацию как phpinfo(), но для ASP.NET?

Я зациклился на коллекции Request.ServerVariables в ASP.NET, но не настолько всеобъемлющей, как phpinfo().

Как я могу распечатать всю эту информацию, включая серверное программное обеспечение, драйверы и т.д. для ASP.NET?

Ответы

Ответ 1

Пустая страница с этим заголовком должна сделать трюк:

<%@ Page Trace="true"  Language="C#" 
    ContentType="text/html" ResponseEncoding="utf-8" %>

Ответ 2

http://code.google.com/p/aspnetsysinfo/

Проект представляет собой ASP.Net System Information Prober. Это одна страница, которая пытается получить как можно больше полезной информации хостинга. Концепция похожа на страницу PHP, содержащую phpinfo()...

Ответ 3

ServerInfo.GetHtml() в основном совпадает с phpinfo(). Мало того, что фактическая возвращенная информация очень похожа, но также и презентация html. Вот живая демонстрация!


Вы также можете использовать его, даже если вы создаете только приложение для веб-API, но позволяете контроллеру вернуть HttpResponseMessage так:

    public System.Net.Http.HttpResponseMessage Get()
    {
        var serverinfo = System.Web.Helpers.ServerInfo.GetHtml().ToHtmlString();
        var response = new System.Net.Http.HttpResponseMessage();
        response.Content = new System.Net.Http.StringContent("<html><body>" + serverinfo + "</body></html>");
        response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/html");
        return response;
    }

Ответ 4

Как насчет использования подсистемы трассировки ASP.Net? Это позволяет вам:

Дерево управления: дерево управления представляет собой HTML-представление ASP.NET Дерево управления. Показывает каждый идентификатор управления, тип времени выполнения, количество байтов взяли для рендеринга, а байты требуется в состоянии просмотра и контроля Государство.

Состояние сеанса: список всех ключей для конкретной сессии пользователя, их типов и их значений.

Состояние приложения: список всех ключей в текущей заявке Объект приложения и их тип и значения.

Запросить файлы cookie: список всех файлов cookie пройденный во время страницы просил.

Файлы ответов: список всех куки, которые были переданы во время ответ страницы.

Коллекция заголовков: показывает все заголовки, которые могут быть переданы во время запрос из браузера, включая Accept-Encoding, с указанием поддерживает ли браузер сжатые HTTP-ответы и Accept языки.

Коллекция форм: отображает полный свалка коллекции форм и все его ключи и значения.

Коллекция QueryString: отображает дамп коллекции Querystring и все его содержащиеся ключи и значения.

Переменные сервера: полная свалка пар имя-значение всего, что веб-сервер знает о приложение.

Смотрите здесь.

Ответ 5

Посмотрите на взгляд.

Проблеск: взгляд со стороны клиента на ваш сервер

Что Firebug для клиента, Glimpse делает для сервера... другими словами, на стороне клиента Glimpse на то, что происходит на вашем сервере.

Здесь вкладка запроса, как показано в браузере.
(источник: getglimpse.com)

Есть другие вкладки с информацией, и есть возможность писать плагины.

Ответ 6

Может работать следующее:

foreach (string Key in Request.ServerVariables.AllKeys) 
   Response.Write(Key + ": " + Request.ServerVariables[Key] + "<br>");

Я не уверен, что выдает информация phpinfo().

Ответ 9

Для ASP classic с VBScript ( не ASP.net - см. отказ от ответственности ниже) есть Sub aspinfo() on Источник планеты Код, к которому я внес очень незначительные изменения (перемещение вызова на aspinfo() и перемещение верхнего блока авторства/комментария).

Вот источник моей измененной версии Dennis Pallett aspinfo(), который можно сохранить как aspinfo.asp на веб-сервере в вопрос.

<%@ Language="VBSCRIPT" %>
<%

    '**************************************
    ' Name: aspinfo()
    ' Description:aspinfo() is the equivalent of phpinfo(). It displays all kinds of
    '     information about the server, asp, cookies, sessions and several other things in
    '     a neat table, properly formatted.
    ' By: Dennis Pallett (from psc cd)
    '
    '
    ' Inputs:None
    '
    ' Returns:None
    '
    'Assumes:You can include my code in any of your pages and call aspinfo() to show
    '     the information of your server and asp. 
    '
    '**************************************

Sub aspinfo()
    Dim strVariable, strASPVersion
    Dim strCookie, strKey, strSession
    'Retrieve the version of ASP
    strASPVersion = ScriptEngine & " Version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion
%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <style type="text/css"><!--
    a { text-decoration: none; }
    a:hover { text-decoration: underline; }
    h1 { font-family: arial, helvetica, sans-serif; font-size: 18pt; font-weight: bold;}
    h2 { font-family: arial, helvetica, sans-serif; font-size: 14pt; font-weight: bold;}
    body, td { font-family: arial, helvetica, sans-serif; font-size: 10pt; }
    th { font-family: arial, helvetica, sans-serif; font-size: 10pt; font-weight: bold; }
    //--></style>
    <title>aspinfo()</title></head>
    <body>
    <div align="center">
    <table width="80%" border="0" bgcolor="#000000" cellspacing="1" cellpadding="3">
    <tr>
        <td align="center" valign="top" bgcolor="#FFFFAE" align="left" colspan="2">
            <h3>ASP (<%= strASPVersion %>)</h3>
        </td>
    </tr>
    </table>
    <br>
    <hr>
    <br>
    <h3>Server Variables</h3>
    <table width="80%" border="0" bgcolor="#000000" cellspacing="1" cellpadding="3">
<%
    For Each strVariable In Request.ServerVariables
      Response.write("<tr>")
      Response.write("<th width=""30%"" bgcolor=""#FFFFAE"" align=""left"">" & strVariable & "</th>")
      Response.write("<td bgcolor=""#FFFFD9"" align=""left"">" & Request.ServerVariables(strVariable) & "&nbsp;</td>")
      Response.write("</tr>")
    Next 'strVariable
%>
    </table>
    <br>
    <hr>
    <br>
    <h3>Cookies</h3>
    <table width="80%" border="0" bgcolor="#000000" cellspacing="1" cellpadding="3">
<%
    For Each strCookie In Request.Cookies
        If Not Request.Cookies(strCookie).HasKeys Then
            Response.write("<tr>")
            Response.write("<th width=""30%"" bgcolor=""#FFFFAE"" align=""left"">" & strCookie & "</th>")
            Response.write("<td bgcolor=""#FFFFD9"" align=""left"">" & Request.Cookies(strCookie) & "&nbsp;</td>")
            Response.write("</tr>")
        Else
            For Each strKey In Request.Cookies(strCookie)
                Response.write("<tr>")
                Response.write("<th width=""30%"" bgcolor=""#FFFFAE"" align=""left"">" & strCookie & "(" & strKey & ")</th>")
                Response.write("<td bgcolor=""#FFFFD9"" align=""left"">" & Request.Cookies(strCookie)(strKey) & "&nbsp;</td>")
                Response.write("</tr>")
            Next
        End If
    Next
%>
    </table>
    <br>
    <hr>
    <br>
    <h3>Session Cookies</h3>
    <table width="80%" border="0" bgcolor="#000000" cellspacing="1" cellpadding="3">
<%
    For Each strSession In Session.Contents
            Response.write("<tr>")
            Response.write("<th width=""30%"" bgcolor=""#FFFFAE"" align=""left"">" & strSession & "</th>")
            Response.write("<td bgcolor=""#FFFFD9"" align=""left"">" & Session(strSession) & "&nbsp;</td>")
            Response.write("</tr>")
    Next
%>
    </table>
    <br>
    <hr>
    <br>
    <h3>Other variables</h3>
    <table width="80%" border="0" bgcolor="#000000" cellspacing="1" cellpadding="3">
    <tr><th width="30%" bgcolor="#FFFFAE" align="left">Session.sessionid</th><td bgcolor="#FFFFD9"><%= Session.sessionid %></td></tr>
    <tr><th width="30%" bgcolor="#FFFFAE" align="left">Server.MapPath</th><td bgcolor="#FFFFD9"><%= Server.MapPath ("/") %></td></tr>
    </table>
    </div>
    </body>
    </html>
<%
End Sub
aspinfo()
%>

Отказ от ответственности: обратите внимание, что он был первоначально представлен как edit в ответ Роб, но он было предложено, чтобы оно было сделано как совершенно новый ответ. Обратите внимание также, что, поскольку frankadelic указывает на в комментарии к Rob ответ, этот ответ не затрагивает вопрос OP, поскольку этот вопрос был для ASP.net, а не ASP классический.

Ответ 10

Я реализовал простую библиотеку для включения в проекты под названием InfoPage. Эта библиотека показывает вам информацию о системе, сборку, включенную в приложение, номер сборки и изменения.

Вы можете просто включить его в свой проект с помощью nuget, он быстро интегрируется и настраивается.