Condividi tramite


Risolvere i problemi relativi a Windows Communication Foundation (WCF) o riferimenti WCF Data Services in Visual Studio

Si applica a: Visual Studio

Questo articolo elenca le soluzioni ai problemi comuni che possono verificarsi quando si usano riferimenti a Windows Communication Foundation (WCF) o WCF Data Services in Visual Studio.

Per aggiornare o rimuovere un riferimento al servizio, vedere Aggiungere, aggiornare o rimuovere un riferimento al servizio dati WCF.

Errore quando non viene specificato alcun indirizzo del servizio

Quando si seleziona il pulsante Vai senza indirizzo, è possibile che venga visualizzato un messaggio di errore che indica "Immettere l'indirizzo per un servizio". Per risolvere questo problema, identificare l'indirizzo del servizio e immetterlo.

  • Se si tratta di un servizio nella soluzione, è possibile usare il pulsante Individua per trovarlo e selezionarlo e quindi provare di nuovo il pulsante Vai .
  • Se si tratta di un servizio ospitato in un punto qualsiasi su Internet, aggiungerlo seguendo le istruzioni riportate in Aggiungere un riferimento al servizio WCF.

Errore durante la restituzione dei dati da un servizio

Quando si restituisce un DataSet oggetto o DataTable da un servizio, è possibile ricevere un'eccezione "La quota massima delle dimensioni per i messaggi in ingresso è stata superata". Per impostazione predefinita, la MaxReceivedMessageSize proprietà per alcune associazioni è impostata su un valore relativamente piccolo per limitare l'esposizione agli attacchi Denial of Service. È possibile aumentare questo valore per evitare l'eccezione. Per ulteriori informazioni, vedere MaxReceivedMessageSize.

Per correggere questo errore:

  1. In Esplora soluzioni fare doppio clic sul file app.config per aprirlo.
  2. Individuare la MaxReceivedMessageSize proprietà e impostarla su un valore più grande.

Non è possibile trovare un servizio nella soluzione

Quando si seleziona il pulsante Individua nella finestra di dialogo Aggiungi riferimenti al servizio , uno o più progetti della libreria di servizi WCF nella soluzione non vengono visualizzati nell'elenco dei servizi. Questo problema può verificarsi se una libreria di servizi è stata aggiunta alla soluzione ma non è ancora stata compilata.

Per correggere questo errore:

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto libreria di servizi WCF.
  2. Selezionare Compila.

Errore durante l'accesso a un servizio su un desktop remoto

Quando un utente accede a un servizio WCF ospitato sul Web tramite una connessione desktop remoto e l'utente non dispone di autorizzazioni amministrative, viene usata l'autenticazione NTLM. Se l'utente non dispone di autorizzazioni amministrative, l'utente potrebbe ricevere il messaggio di errore seguente: "La richiesta HTTP non è autorizzata con lo schema di autenticazione client 'Anonimo'. L'intestazione di autenticazione ricevuta dal server è "NTLM".

Per correggere questo errore:

  1. Nel progetto del sito Web aprire le pagine Proprietà .
  2. Nella scheda Opzioni di avvio deselezionare la casella di controllo Autenticazione NTLM .

Nota

È consigliabile disattivare l'autenticazione NTLM solo per i siti Web che contengono esclusivamente servizi WCF. La sicurezza per i servizi WCF viene gestita tramite la configurazione nel file web.config . In questo modo l'autenticazione NTLM non è necessaria.

Il livello di accesso per l'impostazione delle classi generate non ha alcun effetto

L'impostazione dell'opzione Livello di accesso per le classi generate nella finestra di dialogo Configura riferimenti al servizio su Interno o Friend potrebbe non funzionare sempre. Anche se l'opzione sembra essere impostata nella finestra di dialogo, le classi di supporto risultanti vengono generate con un livello di accesso di Public. Si tratta di una limitazione nota di determinati tipi, ad esempio quelli serializzati tramite XmlSerializer.

Errore durante il debug del codice del servizio

Quando si esegue un'istruzione nel codice per un servizio WCF dal codice client, è possibile che venga visualizzato un errore relativo ai simboli mancanti. Può verificarsi quando un servizio che faceva parte della soluzione è stato spostato o rimosso dalla soluzione.

Quando si aggiunge per la prima volta un riferimento a un servizio WCF che fa parte della soluzione corrente, viene aggiunta una dipendenza di compilazione esplicita tra il progetto di servizio e il progetto client del servizio. In questo modo, il client accede sempre ai file binari del servizio aggiornati, aspetto particolarmente importante per il debug di scenari come l'esecuzione di istruzioni dal codice client al codice del servizio.

Se il progetto di servizio viene rimosso dalla soluzione, questa dipendenza di compilazione esplicita viene invalidata. Visual Studio non può più garantire che il progetto di servizio venga ricompilo in base alle esigenze.

Per correggere questo errore, ricompilare manualmente il progetto di servizio:

  1. Nel menu File, fare clic su Opzioni.
  2. Nella finestra di dialogo Opzioni espandere Progetti e soluzioni e quindi selezionare Generale.
  3. Assicurarsi che la casella di controllo Mostra configurazioni di compilazione avanzate sia selezionata e quindi selezionare OK.
  4. Caricare il progetto di servizio WCF.
  5. Nella finestra di dialogo Configuration Manager impostare Configurazione soluzione attiva su Debug. Per altre informazioni, vedere Procedura: Creare e modificare configurazioni.
  6. In Esplora soluzioni selezionare il progetto di servizio WCF.
  7. Nel menu Compila selezionare Ricompila per ricompilare il progetto di servizio WCF.

WCF Data Services non vengono visualizzati nel browser

Quando tenta di visualizzare una rappresentazione XML dei dati in un servizio dati WCF, Internet Explorer potrebbe interpretare erroneamente i dati come feed RSS. Assicurarsi che l'opzione per visualizzare i feed RSS sia disabilitata.

Per correggere questo errore, disabilitare i feed RSS:

  1. In Internet Explorer selezionare Opzioni Internet dal menu Strumenti.
  2. Nella sezione Feed della scheda Contenuto selezionare Impostazioni.
  3. Nella finestra di dialogo Impostazioni feed deselezionare la casella di controllo Attiva visualizzazione lettura feed e quindi selezionare OK.
  4. Selezionare OK per chiudere la finestra di dialogo Opzioni Internet .