Risolvere i problemi relativi ai riferimenti a Windows Communication Foundation (WCF) o WCF Data Services in Visual Studio
Si applica a: Visual Studio
Questo articolo elenca le soluzioni ai problemi comuni che possono verificarsi quando si utilizzano 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 di servizio
Quando si seleziona il pulsante Vai senza indirizzo, potrebbe essere 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 internet, aggiungerlo seguendo le istruzioni riportate in Aggiungere un riferimento al servizio WCF.
Errore durante la restituzione di dati da un servizio
Quando si restituisce un DataSet
oggetto o DataTable
da un servizio, è possibile ricevere un'eccezione "La quota massima di dimensioni per i messaggi in ingresso è stata superata". Per impostazione predefinita, la MaxReceivedMessageSize
proprietà per alcune associazioni è impostata su un valore relativamente ridotto per limitare l'esposizione agli attacchi Denial of Service. È possibile aumentare questo valore per evitare l'eccezione. Per ulteriori informazioni, vedere MaxReceivedMessageSize.
Per correggere l'errore:
- In Esplora soluzioni fare doppio clic sul file app.config per aprirlo.
- Individuare la
MaxReceivedMessageSize
proprietà e modificarla in un valore maggiore.
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 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 l'errore:
- In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto libreria di servizi WCF.
- Selezionare Compilazione.
Errore durante l'accesso a un servizio tramite 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 l'errore:
- Nel progetto del sito Web aprire le pagine Proprietà .
- Nella scheda Opzioni di avvio deselezionare la casella di controllo Autenticazione NTLM.
Note
È 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.
L'impostazione del livello di accesso per le 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 usando .XmlSerializer
Errore durante il debug del codice del servizio
Quando si esegue l'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 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. Ciò garantisce che il client accesa sempre ai file binari del servizio aggiornati, particolarmente importanti per gli scenari di debug, ad esempio 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 ricompilato in base alle esigenze.
Per correggere questo errore, ricompilare manualmente il progetto di servizio:
- Scegliere Options (Opzioni) dal menu Tools (Strumenti).
- Nella finestra di dialogo Opzioni espandere Progetti e soluzioni e quindi fare clic su Generale.
- Assicurarsi che la casella di controllo Mostra configurazioni di compilazione avanzate sia selezionata e quindi selezionare OK.
- Caricare il progetto di servizio WCF.
- Nella finestra di dialogo Configuration Manager impostare Configurazione soluzione attiva su Debug. Per altre informazioni, vedere Procedura: Creare e modificare le configurazioni.
- In Esplora soluzioni selezionare il progetto di servizio WCF.
- Scegliere Ricompila dal menu Compila per ricompilare il progetto di servizio WCF.
WCF Data Services non viene visualizzato nel browser
Quando tenta di visualizzare una rappresentazione XML dei dati in un servizio dati WCF, Internet Explorer potrebbe aver interpretato erroneamente i dati come feed RSS. Assicurarsi che l'opzione per visualizzare i feed RSS sia disabilitata.
Per correggere l'errore, disabilitare i feed RSS:
- In Internet Explorer scegliere Opzioni Internet dal menu Strumenti.
- Nella sezione Feed della scheda Contenuto selezionare Impostazioni.
- Nella finestra di dialogo Impostazioni feed deselezionare la casella di controllo Attiva visualizzazione lettura feed e quindi selezionare OK.
- Selezionare OK per chiudere la finestra di dialogo Opzioni Internet.