Offline / Online anzeige

16/08/2008 - 14:34 von Fredi Sertio | Report spam
Hallo NG
ich bin ein Webpublisher vom vergangenen Jahrtausend und kenne mich nur mit
dem alten ASP aus. Dort habe ich ein Script das mir mittels Wscript eine
Liste von vordefinierten Server anpingt und dann auflistet ob diese Online
oder Offline sind (Ampel).
Nun möchte ich dies in eine ASP.net Web integrieren bzw. muss ich es neu
definieren da es ja nicht mehr funktioniert in einem aspx file oder?

Hat jemand gerade ein Beispiel eines solchen Scripts? Es sollte möglich
einfach zu verstehen sein, so dass ich es dann mit ein bisschen probieren
auch noch erweitern könnte oder so..

Danke & Gruss
florian
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
16/08/2008 - 15:27 | Warnen spam
Hallo Florian,

"Fredi Sertio" schrieb:

warum schreibst Du eigentlich in der Classic ASP Newsgroup mit Florian und
hier mit Fredi? (Nur so aus Interesse)

Nun möchte ich dies in eine ASP.net Web integrieren bzw. muss ich es neu definieren da es ja nicht mehr funktioniert in einem aspx
file oder?



Jein. Du kannst in ASP.NET problemlos auch Classic ASP Seiten _aufrufen_
und deren Rückgabe auswerten, direkte integrieren kannst Du das aber nicht.

Hat jemand gerade ein Beispiel eines solchen Scripts?



Mit Multithreading? Das war ja dein eigentliches Problem, wenn ich das
richtig verstanden habe.

Es sollte möglich einfach zu verstehen sein,



Öhm. Schickst Du nen Scheck oder willst Du lieber auf ein Konto überweisen? :)

Ich persönlich würde das über einen Handler (ASHX) lösen. Der Handler setzt
den Ping ab, wertet die Rückgabe aus und liefert eine Grafik zurück. Im
eigentlichen Skript werden dann einfach mehrere Grafiken eingebunden, die
als ImageUrl auf den Handler verweisen.

[PingHandler.ashx]
<%@ WebHandler Language="VB" Class="PingHandler" %>

Imports System
Imports System.Web
Imports System.Net

Public Class PingHandler : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

Dim Address As String = String.Empty
Dim Result As String = String.Empty
Dim Ping As NetworkInformation.Ping
Dim Reply As NetworkInformation.PingReply

Address = context.Request.QueryString( "Address" ).ToString()
Ping = New NetworkInformation.Ping()

If String.IsNullOrEmpty( Address ) Then
Result = "PingNoAddress"
Else
Try
Reply = Ping.Send( Address, 1000 )

If Reply.Status = NetworkInformation.IPStatus.Success Then
Result = "PingSuccess"
Else
Result = "PingFailed"
End If

Catch ex As Exception
Result = "PingFailed"
Finally
Ping.Dispose()
End Try
End if

context.Response.ContentType = "image/gif"
context.Response.WriteFile( context.Server.MapPath( "~/Images/" & Result & ".gif" ) )

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property

End Class

[PingTest.aspx]
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="PingTest.aspx.vb" Inherits="PingTest" %>

<html>
<head>
<title>Ping Test</title>
</head>
<body>

<form id="form1" runat="server">
<div>

<asp:Image ID="Ping1" runat="server" ImageUrl="~/PingHandler.ashx?Address=www.server1.tld" />
www.server3.tld
<br />

<asp:Image ID="Ping2" runat="server" ImageUrl="~/PingHandler.ashx?Address=www.server2.tld" />
www.server2.tld
<br />

<asp:Image ID="Ping3" runat="server" ImageUrl="~/PingHandler.ashx?Address=www.server3.tld" />
www.server3.tld
<br />

</div>
</form>

</body>
</html>

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen