2 pagine in totale: <<Indietro 1 [2]
Un mini pannello di controllo
Ecco delle semplici pagine ASP che ci permetteranno di creare il nostro mini pannello di controllo.

Innanzitutto prepariamo la nostra pagina HTML che conterrà il form di controllo e che invierà i dati alla pagina ASP che provvederà ad effettuare l'operazione desiderata:
<HTML>
<BODY>
<FORM action="iis_action.asp" method=POST id=form1 name=form1>
<TABLE WIDTH=75% ALIGN=center BORDER=1 cellspacing=1 cellpadding=1>
<TR>
<TD>Nome Server</TD>
<TD>
<select name="ServerName">
<option value="Server1">Server 1</option>
<option value="Server2">Server 2</option>
<option value="Server3">Server 3</option>
</select>
</TD>
</TR>
<TR>
<TD>Azione</TD>
<TD>
<select name="Action">
<option value="Pause">Pause</option>
<option value="Continue">Continue</option>
<option value="Start">Start</option>
<option value="Halt">Stop</option>
<option value="Restart">Restart</option>
<option value="ServerStatus">ServerStatus</option>
</select>
</TD>
</TR>
<TR>
<TD colspan=2 align=center><input type="Submit" name="submit" value="Esegui l'azione desiderata"></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>Se analizziamo la nostra semplice pagina HTML vedremo che il nostro form conterrà come dati da passare alla pagina ASP il nome del server da gestire e l'operazione da eseguire.
E' importante notare che se siete in un ambiente di rete non dovete usare come Server Name "localhost" altrimenti riceverete l'errore: "Nome duplicato sulla rete".
Questo perché il controllo non riuscirebbe a risolvere il nome localhost nel caso ci siano più computer con IIS installato. E' necessario quindi inserire come ServerName il nome fisico del PC (ad esempio Client1, Client2 o Server1 o anche PortatileAndrea)
Tra le varie operazioni manca il metodo About che non fa nessuna operazione sul web server ma visualizza le informazioni sul componente in una finestra e per questo va eseguito solo se il componente viene utilizzato in un progetto client (ad esempio un progetto VB), pena il blocco di IIS che attenderebbe la chiusura della finestra.
Ma passiamo alla pagina ASP che effettuerà le nostre operazioni:
<%
Dim IISCtrl
Dim sAction,sServerName
Dim sText
sAction = Request.Form("Action")
sServerName = Request.Form("ServerName")
Set IISCtrl = Server.CreateObject("IISControl.IIS")
IISCtrl.ServerName=sServerName
Select Case sAction
Case "Pause"
sText="Il Server Web (" & sServerName & ") sta per essere messo in stato di <b>Pausa</b>"
Case "Continue"
sText="Il Server Web (" & sServerName & ") sta per essere messo in stato di <b>Play</b>"
Case "Start"
sText="Il Server Web (" & sServerName & ") sta per essere <b>Avviato</b>"
Case "Halt"
sText="Il Server Web (" & sServerName & ") sta per essere <b>Fermato</b>"
Case "Restart"
sText="Il Server Web (" & sServerName & ") sta per essere <b>Riavviato</b>"
Case "ServerStatus"
Select Case IISCtrl.ServerStatus
Case 1 'SERVICE_STOPPED
sText="SERVICE_STOPPED"
Case 2 'SERVICE_START_PENDING
sText="SERVICE_START_PENDING"
Case 3 'SERVICE_STOP_PENDING
sText="SERVICE_STOP_PENDING"
Case 4 'SERVICE_RUNNING
sText="SERVICE_RUNNING"
Case 5 'SERVICE_CONTINUE_PENDING
sText="SERVICE_CONTINUE_PENDING"
Case 6 'SERVICE_PAUSE_PENDING
sText="SERVICE_PAUSE_PENDING"
Case 7 'SERVICE_PAUSED
sText="SERVICE_PAUSED"
Case 8 'SERVICE_ERROR
sText="SERVICE_ERROR"
End Select
End Select
%>
<HTML>
<BODY>
<P>
<%
Response.Write sText
Response.Flush
Response.Flush
Response.Flush
%>
</P>
</BODY>
</HTML>
<%
Select Case sAction
Case "Pause"
IISCtrl.Pause
Case "Continue"
IISCtrl.Continue
Case "Start"
IISCtrl.Start
Case "Halt"
IISCtrl.Halt
Case "Restart"
IISCtrl.Restart
Case "ServerStatus"
End Select
Set IISCtrl=Nothing
Response.Flush
Response.Flush
%>Con questa semplice pagina sarà possibile effettuare tutte le operazioni sul nostro Web Server. Innanzitutto recuperiamo il nome del server su cui agire e l'azione da compiere. Tutto questo mediante le due Request:
sAction = Request.Form("Action")
sServerName = Request.Form("ServerName")In seguito mediante la clausola Select impostiamo un testo da far visualizzare prima che venga eseguita l'operazione da noi richiesta.
Notate che è necessario mettere qualche Response.Flush per far visualizzare la stringa impostata prima che venga eseguita nella Select successiva l'operazione, a meno che non si stia utilizzando il metodo ServerStatus che non esegue nessuna operazione su IIS ma ci ritorna un valore numerico che è lo stato del Web Server. Se ci troviamo in un progetto VB avremo a disposizione anche un Enum che conterrà i vari stati del Web Server, mentre se siamo in una pagina ASP dovremo usare una funzione apposita (come la select che abbiamo usato nell'esempio).
Conclusioni
Un ultimo accorgimento va anche sul server da interrogare o su cui effettuare delle operazioni. E' necessario, naturalmente, assicurarsi di avere le credenziali (vedi i permessi) giusti per poter agire sul Web Server altrimenti riceveremo un errore.
Il controllo presentato è abbastanza semplice da utilizzare e necessita solamente che sia impostata la proprietà ServerName per essere utilizzato. Tutto il resto è molto intuitivo in quanto il controllo ha a disposizione i metodi che è possibile usare su IIS e niente più.
2 pagine in totale: <<Indietro 1 [2]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download



