Risoluzione dei problemi relativi all'esercitazione introduttiva
In questo argomento vengono elencati i problemi più comuni che possono verificarsi durante l'Esercitazione introduttiva e le relative soluzioni.
Impossibile trovare i file di progetto nell'unità disco rigido
Se si tenta di eseguire l'applicazione del servizio, viene visualizzato l'errore seguente: HTTP non è stato in grado di registrare l'URL http://+:8000/ServiceModelSamples/Service/. Il processo non dispone dei diritti di accesso a questo spazio dei nomi.
Se si tenta di utilizzare lo strumento Svcutil.exe, viene visualizzato l'errore seguente: 'svcutil' non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.
Impossibile trovare il file App.config generato da Svcutil.exe.
Durante la compilazione dell'applicazione client, viene visualizzato l'errore seguente: 'CalculatorClient' non contiene una definizione per '<nome metodo>' e non è stato trovato alcun metodo di estensione '<nome metodo>' che accetta un primo argomento di tipo 'CalculatorClient'. Probabilmente manca una direttiva using o un riferimento a un assembly.
Durante la compilazione dell'applicazione client, viene visualizzato l'errore seguente: Impossibile trovare il tipo o il nome dello spazio dei nomi 'CalculatorClient'; probabilmente manca una direttiva using o un riferimento a un assembly.
Eccezione non gestita: System.ServiceModel.EndpointNotFoundException: Impossibile connettersi a https://localhost:8000/ServiceModelSamples/Service/CalculatorService. Codice di errore TCP 10061: Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione.
Impossibile trovare i file di progetto nell'unità disco rigido.
In Visual Studio i file di progetto vengono salvati in c:\users\<nome utente\Documenti\Visual Studio 2010\Projects in Windows Vista e Windows°7 e in c:\Documents and Settings\<nome utente>\Documenti\Visual Studio 2010\Projects nelle versioni precedenti di Windows.
Se si tenta di eseguire l'applicazione del servizio, viene visualizzato l'errore seguente: HTTP non è stato in grado di registrare l'URL http://+:8000/ServiceModelSamples/Service/. Il processo non dispone dei diritti di accesso a questo spazio dei nomi.
Il processo che ospita un servizio WCF deve essere eseguito con privilegi di amministratore. Se il servizio viene eseguito da Visual Studio 2010, è necessario eseguire Visual Studio 2010 come amministratore. A tale scopo, fare clic su Start, fare clic con il pulsante destro del mouse su Visual Studio 2010 e selezionare Esegui come amministratore. Se il servizio viene eseguito da un prompt della riga di comando, è necessario avviare il prompt della riga di comando come amministratore. Fare clic sul pulsante Start, fare clic con il pulsante destro del mouse su Prompt dei comandi, quindi scegliere Esegui come amministratore.
Se si tenta di utilizzare lo strumento Svcutil.exe, viene visualizzato l'errore seguente: 'svcutil' non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.
Svcutil.exe deve trovarsi nel percorso di sistema. La soluzione più semplice consiste nell'utilizzare il prompt dei comandi. Fare clic sul pulsante Start, selezionare Tutti i programmi, Visual Studio 2010, Strumenti di Visual Studio e Prompt dei comandi di Visual Studio 2010. Questo prompt dei comandi consente di impostare il percorso di sistema sui percorsi corretti per tutti gli strumenti forniti con Visual Studio 2010.
Impossibile trovare il file App.config generato da Svcutil.exe.
Per impostazione predefinita, nella finestra di dialogo Aggiungi elemento esistente vengono visualizzati solo i file con le estensioni cs, resx, settings, xsd e wsdl. È possibile impostare la visualizzazione di tutti i tipi di file selezionando Tutti i file (*.*) nella casella di riepilogo a discesa nell'angolo inferiore destro della finestra di dialogo Aggiungi elementi esistente.
Durante la compilazione dell'applicazione client, viene visualizzato l'errore seguente: 'CalculatorClient' non contiene una definizione per '<nome metodo>' e non è stato trovato alcun metodo di estensione '<nome metodo>' che accetta un primo argomento di tipo 'CalculatorClient'. Probabilmente manca una direttiva using o un riferimento a un assembly.
Solo i metodi contrassegnati con ServiceOperationAttribute vengono esposti al mondo esterno. Se è stato omesso l'attributo ServiceOperationAttribute da uno dei metodi nell'interfaccia ICalculator, durante la compilazione di un'applicazione client che effettua una chiamata all'operazione a cui manca l'attributo viene visualizzato questo messaggio di errore.
Durante la compilazione dell'applicazione client, viene visualizzato l'errore seguente: Impossibile trovare il tipo o il nome dello spazio dei nomi 'CalculatorClient'; probabilmente manca una direttiva using o un riferimento a un assembly.
Questo errore si verifica se il file Proxy.cs o Proxy.vb non viene aggiunto al progetto client.
Eseguendo il client, viene visualizzato l'errore seguente: Eccezione non gestita: System.ServiceModel.EndpointNotFoundException: Impossibile connettersi a https://localhost:8000/ServiceModelSamples/Service/CalculatorService. Codice di errore TCP 10061: Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione.
Si verifica questo errore se l'applicazione client viene eseguita senza eseguire il servizio.
Eccezione non gestita: System.ServiceModel.Security.SecurityNegotiationException: Negoziazione di sicurezza SOAP con 'https://localhost:8000/ServiceModelSamples/Service/CalculatorService' per la destinazione 'https://localhost:8000/ServiceModelSamples/Service/CalculatorService' non riuscita
Questo errore si verifica in un computer aggiunto a un dominio senza connettività di rete. Connettere il computer alla rete o disattivare la sicurezza sia per il client che per il servizio. Per quest'ultimo, modificare inoltre il codice che crea WSHttpBinding nel modo seguente.
// Step 3 of the hosting procedure: Add a service endpoint
selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");
Per il client, modificare l'elemento <security> sotto l'elemento <binding> nel modo seguente:
<security mode="Node" />
Vedere anche
Concetti
Guida rapida alla risoluzione dei problemi di WCF
Risoluzione dei problemi di installazione