Strumento di registrazione ServiceModel (ServiceModelReg.exe)
Questo strumento da riga di comando offre la possibilità di gestire la registrazione di componenti WCF e WF in un singolo computer. In condizioni normali l'utilizzo di questo strumento non è consigliabile perché i componenti WCF e WF vengono configurati quando installati. Tuttavia, se si verificano problemi con l'attivazione del servizio, si può tentare la registrazione dei componenti tramite questo strumento.
Sintassi
ServiceModelReg.exe[(-ia|-ua|-r)|((-i|-u) -c:<command>)] [-v|-q] [-nologo] [-?]
Osservazioni
Lo strumento si trova nel percorso seguente:
%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
Nota
Quando lo strumento di registrazione ServiceModel viene eseguito in Windows Vista, la finestra di dialogo Funzionalità di Windows potrebbe non riflettere che l'opzione Di attivazione HTTP di Windows Communication Foundation in Microsoft .NET Framework 3.0 è attivata. La finestra di dialogo Funzionalità di Windows può essere accessibile facendo clic su Start, quindi su Esegui e quindi digitando FacoltativiFeature.
Nella tabella riportata di seguito sono descritte le opzioni che possono essere utilizzate con ServiceModelReg.exe.
Opzione | Descrizione |
---|---|
-ia |
Installa tutti i componenti WCF e WF. |
-ua |
Disinstalla tutti i componenti WCF e WF. |
-r |
Ripristina tutti i componenti WCF e WF. |
-i |
Installa tutti i componenti WCF e WF specificati con -c. |
-u |
Disinstalla tutti i componenti WCF e WF specificati con -c. |
-c |
Installa o disinstalla un componente: - httpnamespace - Prenotazione dello spazio dei nomi HTTP - tcpportsharing - Servizio di condivisione delle porte TCP - tcpactivation - Servizio di attivazione TCP (non supportato nel profilo client .NET 4) - namedpipeactivation - Servizio di attivazione della pipe denominata (non supportato nel profilo client .NET 4 - msmqactivation - Servizio di attivazione MSMQ (non supportato nel profilo client .NET 4 - etw - Manifesti di traccia eventi ETW (Windows Vista o versioni successive) |
-q |
Modalità non interattiva (solo registrazione errori visualizzata) |
-v |
Modalità dettagliata. |
-nologo |
Elimina le informazioni di copyright e il messaggio di avvio. |
-? |
Visualizza il testo della Guida |
Correzione dell’errore FileLoadException
Se sono state installate versioni precedenti di WCF nel computer, è possibile che venga visualizzato un FileLoadFoundException
errore quando si esegue lo strumento ServiceModelReg per registrare una nuova installazione. Ciò può verificarsi anche se sono stati rimossi manualmente file dall’installazione precedente, ma sono state mantenute intatte le impostazioni machine.config.
Verrà visualizzato un messaggio di errore simile al seguente:
Error: System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
È necessario notare dal messaggio di errore che è stato installato l’assembly System.ServiceModel Versione 2.0.0.0 di una precedente versione di Customer Technology Preview (CTP). La versione corrente dell'assembly System.ServiceModel rilasciata è invece 3.0.0.0. Pertanto, questo problema viene rilevato quando si vuole installare la versione ufficiale WCF in un computer in cui è stata installata una versione CTP iniziale di WCF, ma non completamente disinstallata.
ServiceModelReg.exe non può eseguire la pulizia di voci della versione precedente, né può registrare voci della versione nuova. L'unica soluzione alternativa consiste nel modificare manualmente machine.config. È possibile individuare questo file nel percorso seguente.
%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config
Se si esegue WCF in un computer a 64 bit, è necessario modificare anche lo stesso file in questa posizione.
%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config
Individuare tutti i nodi XML in questo file che fanno riferimento a "System.ServiceModel, Version=2.0.0.0", eliminarli e tutti i nodi figlio. Per risolvere il problema, salvare il file e ripetere l'esecuzione di ServiceModelReg.exe.
Esempio
Negli esempi seguenti viene illustrato come utilizzare le opzioni più comuni dello strumento ServiceModelReg.exe.
ServiceModelReg.exe -ia
Installs all components
ServiceModelReg.exe -i -c:httpnamespace -c:etw
Installs HTTP namespace reservation and ETW manifests
ServiceModelReg.exe -u -c:etw
Uninstalls ETW manifests
ServiceModelReg.exe -r
Repairs an extended install