Simple ASP.NET server info page. Shows uptime, hard drive space, and RAM.
Add this to Web.config system.web -> configuration -> assemblies:
Simple ASP.NET server info page. Shows uptime, hard drive space, and RAM.
Add this to Web.config system.web -> configuration -> assemblies:
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Web; | |
public static class TimeSpanExtensions | |
{ | |
public static string ToNiceString(this TimeSpan timespan) | |
{ | |
int days = (int)timespan.TotalDays; | |
int hrs = timespan.Hours; | |
int mins = timespan.Minutes; | |
StringBuilder sb = new StringBuilder(); | |
if (days > 0) | |
{ | |
sb.Append(days + (days == 1 ? " day, " : " days, ")); | |
} | |
if (hrs > 0 || days > 0) | |
{ | |
sb.Append(hrs + (hrs == 1 ? " hour, " : " hours, ")); | |
} | |
sb.Append(mins + (mins == 1 ? " min" : " mins")); | |
return sb.ToString(); | |
} | |
} |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ServerInfo.aspx.cs" Inherits="Daniel15.Server.ServerInfo" %> | |
<!DOCTYPE html> | |
<html> | |
<head runat="server"> | |
<title></title> | |
</head> | |
<body> | |
<dl> | |
<dt>Hostname</dt> | |
<dd><%= Environment.MachineName %></dd> | |
<dt>OS</dt> | |
<dd><%= _computerInfo.OSFullName %></dd> | |
<dt>Uptime</dt> | |
<dd><%= Uptime.ToNiceString() %></dd> | |
</dl> | |
<h2>Memory Usage</h2> | |
<table> | |
<thead> | |
<tr> | |
<th>Type</th> | |
<th>Usage</th> | |
<th>Free</th> | |
<th>Used</th> | |
<th>Size</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>Physical memory</td> | |
<td><%= ((_computerInfo.TotalPhysicalMemory - _computerInfo.AvailablePhysicalMemory) / (float)_computerInfo.TotalPhysicalMemory * 100.0).ToString("0.00") %>%</td> | |
<td><%= ToSizeString(_computerInfo.AvailablePhysicalMemory)%></td> | |
<td><%= ToSizeString(_computerInfo.TotalPhysicalMemory - _computerInfo.AvailablePhysicalMemory) %></td> | |
<td><%= ToSizeString(_computerInfo.TotalPhysicalMemory) %></td> | |
</tr> | |
<!--tr> | |
<td>Swap</td> | |
<td><%= ToSizeString(_computerInfo.AvailableVirtualMemory) %></td> | |
<td><%= ToSizeString(_computerInfo.TotalVirtualMemory - _computerInfo.AvailableVirtualMemory) %></td> | |
<td><%= ToSizeString(_computerInfo.TotalVirtualMemory) %></td> | |
</tr--> | |
</tbody> | |
</table> | |
<h2>Mounted Filesystems</h2> | |
<table> | |
<thead> | |
<tr> | |
<th>Mountpoint</th> | |
<th>Usage</th> | |
<th>Free</th> | |
<th>Used</th> | |
<th>Size</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>C:</td> | |
<td><%= (((_driveInfo.TotalSize - _driveInfo.TotalFreeSpace) / (float)_driveInfo.TotalSize) * 100.0).ToString("0.00") %>%</td> | |
<td><%= ToSizeString(_driveInfo.AvailableFreeSpace) %></td> | |
<td><%= ToSizeString(_driveInfo.TotalSize - _driveInfo.TotalFreeSpace) %></td> | |
<td><%= ToSizeString(_driveInfo.TotalSize) %></td> | |
</tr> | |
</tbody> | |
</table> | |
</body> | |
</html> |
using System; | |
using System.Diagnostics; | |
using System.Globalization; | |
using System.IO; | |
using System.Security.Permissions; | |
using Microsoft.VisualBasic.Devices; | |
namespace Daniel15.Server | |
{ | |
public partial class ServerInfo : System.Web.UI.Page | |
{ | |
protected PermissionSetAttribute _permissionSetAttribute = new PermissionSetAttribute(SecurityAction.Assert); | |
protected ComputerInfo _computerInfo = new ComputerInfo(); | |
protected PerformanceCounter _uptime = new PerformanceCounter("System", "System Up Time"); | |
protected DriveInfo _driveInfo = new DriveInfo("c"); | |
//protected ManagementClass _cpuManagement = new ManagementClass("Win32_Processor"); | |
protected void Page_Init(object sender, EventArgs e) | |
{ | |
_uptime.NextValue(); | |
//var cpus = _cpuManagement.GetInstances(); | |
//cpu.Properties["Name"].Value | |
} | |
protected TimeSpan Uptime | |
{ | |
get { return TimeSpan.FromSeconds(_uptime.NextValue()); } | |
} | |
protected static string ToSizeString(double bytes) | |
{ | |
var culture = CultureInfo.CurrentUICulture; | |
const string format = "#,0.0"; | |
if (bytes < 1024) | |
return bytes.ToString("#,0", culture); | |
bytes /= 1024; | |
if (bytes < 1024) | |
return bytes.ToString(format, culture) + " KB"; | |
bytes /= 1024; | |
if (bytes < 1024) | |
return bytes.ToString(format, culture) + " MB"; | |
bytes /= 1024; | |
if (bytes < 1024) | |
return bytes.ToString(format, culture) + " GB"; | |
bytes /= 1024; | |
return bytes.ToString(format, culture) + " TB"; | |
} | |
} | |
} |