IISControl: come comandare IIS

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.

Immagine

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

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC