Di recente ho creato un servizio WCF (dll) e un host di servizio (exe). So che il mio servizio WCF funziona correttamente poiché sono in grado di aggiungere correttamente il servizio a WcfTestClient.
Tuttavia, mi sembra di incorrere in un problema quando si tratta di utilizzare il mio WCF da un host di servizio (exe). Posso aggiungere un riferimento al WCF (dll) al mio host di servizio (exe) e creare i componenti necessari per l'exe; come il programma di installazione del servizio, l'host del servizio e app.config, compilare e infine installare l'exe utilizzando InstallUtil. Tuttavia, quando ho provato ad avviare il servizio in Microsoft Management Console, il servizio si interrompe immediatamente dopo essere stato avviato.
Quindi ho iniziato a indagare su cosa potesse causare esattamente questo problema e ho riscontrato questo errore dal registro dell'applicazione nel Visualizzatore eventi.
Descrizione:
Il servizio non può essere avviato. System.InvalidOperationException: il servizio "Service" non ha endpoint dell'applicazione (non infrastrutturale). Ciò potrebbe essere dovuto al fatto che non è stato trovato alcun file di configurazione per l'applicazione o perché non è stato possibile trovare alcun elemento del servizio corrispondente al nome del servizio nel file di configurazione o perché non sono stati definiti endpoint nell'elemento del servizio.
Questo errore viene effettivamente generato in OnStart
; del mio exe, quando eseguo questa chiamata ServiceHost.Open()
. Ho visto numerosi post in cui altre persone si sono imbattute in questo problema, tuttavia la maggior parte, se non tutte, afferma che il nome del servizio o il contratto; spazio dei nomi e nome della classe, non vengono specificati. Ho controllato entrambe queste voci nel mio file di configurazione; nell'exe così come nel dll, e corrispondono PERFETTAMENTE. Ho avuto altre persone in ufficio a ricontrollare dietro di me per assicurarmi che non fossi diventato cieco a un certo punto, ma ovviamente sono giunti alla mia stessa conclusione che tutto sembrava essere stato specificato correttamente. Sono veramente perso su quello che sta succedendo a questo punto. Qualcuno potrebbe aiutarmi con questo problema?
Un'altra cosa che è emersa come una possibile ragione per cui ciò potrebbe accadere è che app.config non viene mai letto; almeno non quello che penso dovrebbe essere letto. Potrebbe essere questo il problema? In tal caso, come posso affrontare il problema. Ancora una volta, QUALSIASI aiuto sarebbe apprezzato.