Sunucu Çalışma Zamanı

Sunucunun çalışma zamanını (server uptime) ASP ile gösterme

Ben ilk başlarda sunucunun ne zamandır çalıştığını yazdığım bir programla buluyordum. Programı bilgisayar başlayınca çalışacak şekilde ayarlıyordum kontrol panelden. Programın tek yaptığı bir defalığına tarih ve saati bir dosyaya kaydediyor ve kapanıyor. Daha sonra ASP’den bu dosyayı açıp şu anki saatten bilgisayarın ilk açıldığı saati çıkararak sunucunu ne kadar zamandır çalıştığını buluyordum.

Sunucu Çalışma Zamanı

Sunucu Çalışma Zamanı

Kısa bir zaman önce ise bir başka formül buldum. Bir ASPX dosyası yardımıyla sunucunun çalışma zamanını buluyorum. Sonra da AJAX ile bu bilgiyi ASP sayfalarında gösteriyorum.

Adım 1 (ASPX Dosyası):

Aşağıdaki kodları “uptime.aspx” adında bir dosyaya kaydedin ama sakın kaybetmeyin. Bir sonraki adımda bunu kullanacağız.

<%@ Page language="c#" %>
<%@ Import Namespace="System.Diagnostics" %>
<script Language="C#" Runat="Server">
protected void Page_Load(object sender, System.EventArgs e){
	PerformanceCounter pc = new PerformanceCounter("System","System Up Time");
	pc.NextValue();
	TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());
	Response.Write("This system "+Environment.MachineName +
          " has been up for " +ts.Days +" days " +ts.Hours +
          " hours, " +ts.Minutes +" minutes and " +
          ts.Seconds +" seconds.");
}</script>

Adım 2 (ASP Dosyası):

<div id="result"></div>
<script>GetUptime();
function GetUptime(){
	xmlHttp=GetXmlHttpObject();if(xmlHttp==null){return};
	xmlHttp.onreadystatechange=stateChanged4uptime;
        xmlHttp.open("GET",uptime.aspx,true);
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=iso-8859-1");
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded;language=en");
	xmlHttp.send(null);
}
function stateChanged4uptime(){if(xmlHttp.readyState==4||xmlHttp.readyState=="complete"){document.getElementById("result").innerHTML=xmlHttp.responseText;}}
function GetXmlHttpObject(){
	var objXMLHttp=null;
	if(window.XMLHttpRequest){
            objXMLHttp=new XMLHttpRequest()
         }
	else if(window.ActiveXObject){
            objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
        }
	return objXMLHttp;
}</script>

Özetle olay şu:
ASP dosyası çalışınca GetUptime() diye bir javascript fonksiyonu çalıştırıyor. Bu fonksiyon da uptime.aspx dosyasını çalıştırıp result adındaki katmana yerleştiriyor. Biz buna kısaca AJAX diyoruz. Bir çeşit iframe ama daha işlevsel.