This is a cool little tool that I wrote a few years ago. At the time I was working for a government department and our web applications where deployed to a multi-tier web farm with ISA acting as a load balancer. Direct traffic to an individual box was not allowed so it was quite difficult to determine which server you were hitting, Making it next to impossible to diagnose intermittent deployment problems.
Enter the AppInfoHandler. AppInfoHandler is a diagnostic tool that when hit spews out a tonne of information about the application such as.
General
Machine Name
Server IP
IIS Version
IIS Priority
IIS Up Time
.Net Version
OS Version
Service Identity
Trust Level
Server Name
App Domain Id
Physical Application Path
Virtual Application Path
Application Temp Path
Temp Path
Authenticated
Secure Connection (https)
User Identity Name
User Host Address
Impersonation Level
Server Time
Server Culture
Server UI Culture
Server Cores
Server Memory
Loaded Assemblies
Server Variables
(these are dynamically loaded from the request)
ALL_HTTP
ALL_RAW
APPL_MD_PATH
APPL_PHYSICAL_PATH
AUTH_TYPE
AUTH_USER
AUTH_PASSWORD
LOGON_USER
REMOTE_USER
CERT_COOKIE
CERT_FLAGS
CERT_ISSUER
CERT_KEYSIZE
CERT_SECRETKEYSIZE
CERT_SERIALNUMBER
CERT_SERVER_ISSUER
CERT_SERVER_SUBJECT
CERT_SUBJECT
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
HTTPS
HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE
HTTPS_SERVER_ISSUER
HTTPS_SERVER_SUBJECT
INSTANCE_ID
INSTANCE_META_PATH
LOCAL_ADDR
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_PORT
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PORT_SECURE
SERVER_PROTOCOL
SERVER_SOFTWARE
URL
HTTP_CONNECTION
HTTP_ACCEPT
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_COOKIE
HTTP_HOST
HTTP_REFERER
HTTP_USER_AGENTenter PC 6.0)
Session Variables
(these are dynamically loaded from the session)
Cache Variables
(these are dynamically loaded from the cache)
Application Variables
(these are dynamically loaded from the application cache)
This data could easily be extended to include web.config values or the status of windows services etc. One of the great things about this tool is that its a single self contained dll so it can deployed once into the GAC/master web.config once and will work on any application on the server.
The original idea for this was based on
cache manager written by Steven Smith.
If anyone has any feedback or features they'd like to see added please let me know.
Download the
binary here or the
source code here.
How to make AppInfoHandler work in your application:
1. Add a reference to the sfc.AppInfoHandler.dll
2. In your application web.config add this to you system.web config section
<httphandlers>
<add path="AppInfo.axd" type="sfc.AppInfoHandler.AppInfo,sfc.AppInfoHandler" verb="*"/>
</httphandlers>
3. Run your application and navigate to "http://[your application]/AppInfo.axd - Its that easy