Gestione automatica domini in IIS 6.0

mercoledì 24 marzo 2004 - 17.03

drebechi Profilo | Newbie

Ho necessità di creare sul server web IIS 6.0 in maniera automatica dei nuovi siti.
Per esempio ho bisogno di 1) creare un nuovo sito internet, 2) assegnare alle directory i diritti di scritture lettura esrcuzione etc. 3) assegnare al sito un nome per il virtual hosting.
tutto questo deve essere fatto in maniera automatica. Esistono oggetti nel framework per controllare il server web ?
Grazie

Brainkiller Profilo | Guru

Ciao drebechi,
mi dai un po' di tempo per cercare queste informazioni ?
Io avevo una mezza idea di mettere su un server e rivendere hosting professionale. Infatti mi sono fatto le stesse domande che ti sei fatto tu. Parzialmente so rispondere e parzialmente no.
Con una progettazione di questo tipo potresti mandare avanti un server quasi completamente automaticamente.
Allora ti posso già dire che ci vuole un approccio più da sistemista più che da sviluppatore. Quindi non andare su .NET o linguaggi di programmazione veri e propri ma andare su linguaggi di script come file batch o WSH (windows scripting Host).
Per creare nuovi siti Web dentro IIS si può fare (credo) tramite IIS, ma questo te lo confermo entro sera e ti do spunti su web da cui reperire gli script.
Per assegnare diritti alle cartelle puoi usare il comando cacls.exe contenuto in Windows, in un file batch.

fammi sapere.
ciao
david

drebechi Profilo | Newbie

Nel frattempo mi sono documentato un po' in rete ed ho trovato cose interessanti che ti riporto in modo possano esserti d'aiuto. La necessità di gestire tramite .NET e' nata dal fatto che un utente di una web application, dovrebbe poter attivarsi un sito in maniera automatica senza intervento da parte mia. Io ho scoperto che in IIS 6.0 tutte le informazioni di gestione del server sono contenute in un file XML Metabase.xml. Periodicamente il server ricarica questo file e si aggiorna. In questo file sono contenute le informazione sui siti web , le virtual directory etc. Qui c'e' un link dove ho trovato un po' di notizie.

http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/mb_structure.asp


A questo punto ho solo bisogno di capire come editare questo file, penso che le librerie XML di .NET vadano benone, e come agire sul file per creare nuovi domini etc..

Spero di averti dato qualche utile notizia, intanto se scopri qualcosa fammi sapere.
Ciao

Brainkiller Profilo | Guru

Ciao,
allora ho scartabellato un po' nei miei appunti e ho trovato qualcosa. allora sicuramente si può agire con WMI per aggiungere, rimuovere siti web, virtual folder ecc.
C'è un altro modo forse migliore ed è con ADSI, qui trovi tutti gli oggetti, un'introduzione ed anche degli esempietti per creare delle virtual application in IIS. Il passo per creare interi siti web è breve, basta che ti vai a vedere tutti gli oggetti e relativi metodi e proprietà:
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/prog_use_ovr.asp

Sicuramente, il metabase è in XML da IIS e puoi manipolarlo con .NET manualmente come fosse un file di testo. Però per questo io ti sconsiglio questa strada, perchè la struttura del metabase è abbastanza complessa e operando così rischi di danneggiarlo. Diverso se usi ADSI o WMI, che ti permettono di fare cose "safe" senza creare danni.

Un'altra cosa che volevo dirti è questa. Non ti consiglio di far sì che un utente via web possa far tutto. Lascerei all'utente solo alcune opzioni non tutte. Per questo io accetterei in input tutte le sue operazioni e poi le schedulerei e lancerei degli script in WSH o VBS come ti dicevo prima piuttosto che far far tutto da una applicazione ASP.NET.

Con script semplici come questo per esempio:

Set iis = getObject("IIS://LocalHost/W3SVC")
For each Object in iis
if (Object.Class = "IIsWebServer") then
WScript.Echo Object.ServerComment
end if
next

puoi elencare tutti i siti web che hai sul tuo PC su IIS e così via.
Qui interagisci direttamente con il metabase ma hai un livello di astrazione in più e usi ADSI in questo modo non puoi fare danni. Ora si tratta di vedere la gerarchia degli oggetti, metodi e proprietà, e poi tanti test :)
ciao

david
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5