Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il nuovo strumento di gestione Web IIS 7.0 e versioni successive è una piattaforma per sviluppatori estendibile. Le terze parti possono sviluppare e installare le proprie funzionalità di gestione che vengono visualizzate come funzionalità di prima classe nello strumento. Le attività illustrate in questo articolo includono:
- Creazione del progetto in Microsoft Visual Studio o Microsoft Visual C# Express in modo che la libreria possa essere usata all'interno di InetMgr
- Creazione di un provider di moduli semplice
- Creazione di un modulo semplice che visualizza una finestra di messaggio.
Attività 1: Creazione del progetto
Per creare un modulo di estendibilità per InetMgr, è necessario creare un progetto DLL noto anche come progetto libreria di classi. Questa DLL deve essere denominata in modo sicuro in modo che possa essere registrata nella GAC (Global Assembly Cache), che è un requisito per i moduli usati da InetMgr.
Fare clic su Start, scegliere Programmi ed eseguire Microsoft Visual Studio 2005 o Microsoft Visual C# 2005 Express Edition
Nel menu File selezionare l'opzione Nuovo progetto.
Nella finestra di dialogo Nuovo progetto selezionare Libreria di classi come tipo di progetto e digitare ExtensibilityDemo come nome del progetto. Fare clic su OK.
Rimuovere il file Class1.cs aggiunto per impostazione predefinita (poiché non verrà usato tale file) usando l'opzione Elimina del menu di scelta rapida nel Esplora soluzioni.
Usando l'opzione Aggiungi riferimento dal menu Progetto, aggiungere un riferimento a Microsoft.Web.Management.dll usando la scheda Sfoglia e cercarla nella directory \Windows\system32\inetsrv . Questa è la DLL che contiene tutte le classi di estendibilità necessarie per la creazione di moduli per InetMgr.
Poiché usiamo il codice per creare l'interfaccia utente basata su WinForms, dobbiamo aggiungere un riferimento a System.Windows.Forms.dll; a tale scopo, usare l'opzione Aggiungi riferimento dal menu Progetto e selezionare System.Windows.Forms.dll in the.NET elenco di assembly.
Uno dei requisiti per le librerie usate all'interno di InetMgr è che devono essere registrati all'interno della GAC. Assicurarsi che la DLL sia denominata in modo sicuro (talvolta denominata Signed). Visual Studio offre un modo semplice per creare e nuovi nomi. Usare il menu Progetto selezionare l'opzione ExtensibilityDemo Proprietà.
Nella scheda Firma selezionare la casella di controllo Firma assembly .
Nella casella combinata selezionare l'opzione <Nuovo per> creare una nuova chiave. Nella finestra di dialogo Crea chiave con nome sicuro digitare DemoKey.snk come nome della chiave e deselezionare la casella di controllo Proteggi il file di chiave con una password . Fare clic su OK.
La scheda di firma dovrebbe essere visualizzata nel modo seguente:
Poiché si vuole che l'assembly sia presente nella GAC, si aggiungono alcuni eventi post-compilazione in modo che l'assembly venga aggiunto automaticamente alla GAC ogni volta che si compila. In questo modo è facile eseguire il debug e apportare modifiche man mano che si aggiungono nuove funzionalità.
Selezionare la scheda Eventi di compilazione e aggiungere la riga di comando post-compilazione seguente:
CALL "%VS80COMNTOOLS%\vsvars32.bat" > NULL gacutil.exe /if "$(TargetPath)"
(Facoltativo) Se si usa Microsoft Visual Studio 2005, configurare correttamente il debug in modo che sia possibile usare F5 per eseguire il codice. Nelle proprietà del progetto selezionare la scheda Debug e impostarla per avviare un programma esterno scegliendo \windows\system32\inetsrv\inetmgr.exe.
Chiudere le proprietà del progetto e selezionare l'opzione Salva tutto nel menu File e impostare il percorso su d:\Demos. Fare clic su Save (Salva).
È ora possibile compilare il progetto usando Compila soluzione nel menu Compila. In questo modo la DLL viene compilata automaticamente e aggiunta alla GAC.
Nota
Se il comando per l'impostazione vsvars32.bat non funziona con un codice di errore 9009, sostituire il comando aggiunto negli eventi Post Build nel passaggio 8 aggiungendo il percorso completo a gacutil.exe, ad esempio:
"D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /if "$(TargetPath)"
Attività 2: Creazione di un provider di moduli
In questa attività si crea un provider di moduli; si tratta del punto di ingresso principale per la registrazione dei moduli in InetMgr. Questi provider di moduli sono elencati in Administration.config.
Selezionare l'opzione Aggiungi nuovo elemento dal menu Progetto. Nella finestra di dialogo Aggiungi nuovo elemento selezionare il modello Classe e digitare DemoModuleProvider.cs come nome del file.
Modificare il codice in modo che abbia l'aspetto seguente:
using System; using System.Security; using Microsoft.Web.Management.Server; namespace ExtensibilityDemo { class DemoModuleProvider : ModuleProvider { public override Type ServiceType { get { return null; } } public override ModuleDefinition GetModuleDefinition(IManagementContext context) { return new ModuleDefinition(Name, typeof(DemoModule).AssemblyQualifiedName); } public override bool SupportsScope(ManagementScope scope) { return true; } } }
Questo codice crea un ModuleProvider che supporta tutti i tipi di connessioni (Server, Sito e Applicazione) e registra un modulo lato client denominato DemoModule.
Attività 3: Creazione di un modulo
In questa attività si apprenderà come creare un modulo. Un modulo è il punto di ingresso principale nel client per tutti gli oggetti di estendibilità. Ha un metodo principale denominato Initialize. Questo è il metodo in cui si verifica tutta l'azione.
Selezionare l'opzione Aggiungi nuovo elemento nel menu Progetto. Selezionare il modello Classe e digitare DemoModule.cs come nome file.
Modificare il codice in modo che abbia l'aspetto seguente:
using System; using System.Windows.Forms; using Microsoft.Web.Management.Client; using Microsoft.Web.Management.Server; namespace ExtensibilityDemo { internal class DemoModule : Module { protected override void Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo) { base.Initialize(serviceProvider, moduleInfo); MessageBox.Show("Hello World Inside InetMgr"); } } }
Attività 4: Test del modulo
In questa attività si aggiunge il nuovo modulo creato. A tale scopo, è necessario aggiungerlo al file administration.config nell'elenco moduleProviders.
Prima di tutto, è necessario determinare il nome completo per l'assembly appena creato. È sotto forma di "ExtensibilityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken={YourKey}". Usa Esplora risorse per trovarlo.
Aprire Esplora risorse e passare alla cartella *Windows\Assembly*.
Cercare ExtensibilityDemo nell'elenco degli assembly e fare clic con il pulsante destro del mouse e selezionare proprietà. Nella finestra di dialogo verrà visualizzato un campo denominato Token chiave pubblica; È necessario questo valore per registrarlo in InetMgr, quindi copiarlo negli Appunti.
Tornare a Microsoft Visual C# 2005 Express, selezionare l'opzione Apri file... in Menu file. Cercare il file \Windows\System32\InetSrv\Administration.config.
Cercare la <sezione moduleProviders> e aggiungere quanto segue, ma assicurarsi di sostituire il token di chiave pubblica con quello copiato nel passaggio 2:
<moduleProviders> <add name="ExtensibilityDemo" type="ExtensibilityDemo.DemoModuleProvider, ExtensibilityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bed679b1975c7f97" /> <moduleProviders>Nota
Aggiungendolo solo all'elenco di moduleProviders, si registra il modulo solo per le connessioni server. Se si vuole abilitare questo modulo per le connessioni del sito e le connessioni dell'applicazione, aggiungerlo all'elenco seguente:
<location path="."> <module> <add name="ExtensibilityDemo" /> </location>Salvare il file ed eseguire InetMgr, connettersi a localhost e viene visualizzato il messaggio seguente:
Riepilogo
Questo articolo ha illustrato come creare un progetto di Visual Studio per sviluppare moduli di estendibilità per il nuovo strumento di gestione IIS. È stato creato un moduleprovider semplice e la controparte module per visualizzare un messaggio.
Ora che si conoscono le nozioni di base per la creazione di moduli dello strumento di gestione IIS, è possibile esplorare funzionalità più interessanti disponibili per l'estendibilità.