2009-02-19 5 views
64

Ho un client/server applicazione WCFCome posso eliminare il messaggio di errore "Il gruppo di destinazione non contiene tipi di servizio" in VS2008?

mio eseguibile non definisce alcun ServiceContract, che non ha nemmeno un riferimento alla System.ServiceModel (ma invece ha un riferimento a un assembly che contiene la logica di connessione al server)

Ho un altro assembly, a cui fa riferimento il mio EXE, che contiene uno ServiceContract.

Funzionava bene. Ieri, ho giocato molto con le mie impostazioni di progetto (fiducia parziale, piena attendibilità, impostazioni di distribuzione e così via) e ora, ogni volta che avvio il mio client, ho la seguente casella di messaggio:

Microsoft WCF Service Host
L'assembly di destinazione non contiene tipi di servizio.
Potrebbe essere necessario regolare la politica di sicurezza per l'accesso al codice di questo assembly.

Quindi VS si blocca per 1 minuto e alla fine mi consente di eseguire il debug del mio programma come al solito.

Ho trovato a post on this problem, ma la soluzione non si applica alla mia situazione. Qualche idea?

risposta

109

È sempre così. Cerchi 2 ore, alla fine finirai per pubblicare su SO, e 5 minuti dopo, troverai la risposta.

Nella scheda WCF Options delle proprietà del progetto che definisce la ServiceContract, c'è una casella di controllo "Start WCF Host Service durante il debug un altro progetto nella stessa soluzione" che ho incontrollato.

Non ho idea di come sia stato controllato in primo luogo.

In ogni caso, questo ha risolto il mio problema. Vedere MSDN Reference per questa impostazione di progetto.

+0

Mi spiace, ho sfogliato rapidamente e ho perso il collegamento! Penso che la pubblicazione e la risoluzione di 5 minuti dopo succederà perché penserai al problema e ripercorri i passaggi quando pubblichi e raccogli cose che forse non avevi pensato prima. Comunque, felice è risolto – Tanner

+0

Nessun problema! Nel mio caso, ho trovato soluzioni complicate in google, quindi non pensavo esistesse una soluzione "deseleziona la casella di controllo"! – Brann

+0

grazie! stato infastidito da questo per l'ultimo paio di settimane. –

7

Per determinare il progetto con questo problema, trovare la stringa 3D9AD99F-2412-4246-B90B-4EAA41C64699 nei file di progetto.

Esempio: <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Quindi spegnere progetto opzione "Opzioni WCF/Start WCF Host Service durante il debug un altro progetto nella stessa soluzione"

+0

Sebbene questa soluzione possa risolvere la questione per alcuni, almeno in vs2015 rimuoverà "Pubblica" dal menu di scelta rapida facendo clic con il pulsante destro del mouse sul progetto WCF ... –

1

Sono andato anche attraverso lo stesso tipo di problema e cercato per ore per sbarazzarsi di questo particolare errore. Finalmente ho trovato una via d'uscita.

Quando vi imbattete in questo particolare problema, si tenta di eseguire il vostro server e un'applicazione client come amministratore e modificare le proprietà WPF del progetto. Quando fai clic sulle proprietà WPF del progetto, troverai un'opzione di compilazione. Nell'opzione di compilazione, esiste un'opzione chiamata ** PIATTAFORMA TARGET **, in cui si modifica la destinazione della piattaforma su x86. Si noti inoltre che in caso di x84, è necessario impostarlo su x84.

Ora eseguire il progetto dalla console, vale a dire andare alla cartella in cui vengono salvati i progetti e nel bidone del cliente, si trova una DEBUG cartella in cui avrete la vostra applicazione console. Esegui l'applicazione e avrai successo !!!

4

Alcuni blog dire, potrebbe avere happend a causa di copiare il progetto da un ramo diverso, che sostituisce GUID ... quindi basta cancellare loro come spiegato in this blog.

+0

Da VS2015 rimozione di Guid, il progetto non è valido – Hugo

9

Solo nel caso qualcun altro è alla ricerca di una risposta , un'altra causa di questo errore può essere se si dispone di un file App.config in un progetto che è una libreria di classi che ha una sezione <system.serviceModel>.

Ho spostato il codice di servizio da un progetto che era un eseguibile per un altro progetto ma ha lasciato accidentalmente il vecchio file App.config. Il mio nuovo progetto, che era un'applicazione Console configurata e avviata in modo programmatico, WCF, ma poiché il vecchio file App.config era nell'assembly referenziato, otterrei quella finestra di dialogo criptica anche durante il debug dell'applicazione Console.

Ci sono volute 12 ore per rintracciarlo perché non mi ero reso conto che VS debugger controlla tutti gli assembly di riferimento per App.config che hanno configurato i servizi WCF.

+0

Grazie ! Questa è stata la risposta per me! –

1

Questo errore può anche essere causato da un nome di servizio errato nel file di configurazione:

<system.serviceModel> 
    <services> 
     <service name="MyServiceLibrary.WrongServiceName"> 
... 

Controlla il tuo file di configurazione e assicurarsi che il nome del servizio è corretto.

1

Vecchio thread. Basta rimuovere qualsiasi argomento della riga di comando dalla sezione Debug in Opzioni. Questo mi ha aiutato.

Problemi correlati