Stiamo lavorando su un'applicazione a 3 livelli e ci è stato concesso di utilizzare le ultime e le più grandi (MVC2, IIS7.5, WCF, SQL2k8, ecc.). Il livello applicazione è esposto alle varie applicazioni Web dai servizi WCF. Dal momento che controlliamo sia il servizio che il lato client, abbiamo deciso di utilizzare i binding net.tcp per il loro vantaggio prestazionale su HTTP.Elmah per applicazioni di protocollo non HTTP O Elmah senza HttpContext
Vorremmo utilizzare ELMAH per la registrazione degli errori, sia nelle app Web che nei servizi. Ecco la mia domanda. Ci sono molte informazioni sull'utilizzo di ELMAH con WCF, ma è tutto per i binding HTTP. Qualcuno sa se/come è possibile utilizzare ELMAH con i servizi WCF che espongono endpoint non HTTP?
La mia ipotesi è no, perché ELMAH vuole HttpContext, che richiede che il flag AspNetCompatibilityEnabled sia true in web.config. Da MSDN:
IIS 7.0 e WAS consente ai servizi WCF di comunicare su protocolli diversi da HTTP. Tuttavia, i servizi WCF in esecuzione in applicazioni che hanno abilitato la modalità di compatibilità ASP.NET non sono autorizzati a esporre endpoint non HTTP. Tale configurazione genera un'eccezione di attivazione quando il servizio riceve il primo messaggio.
Se è vero che non è possibile utilizzare ELMAH con servizi WCF avere endpoint non HTTP, allora la domanda di follow-up è: Possiamo usare ELMAH in modo tale che non ha bisogno HttpContext? O più in generale (per non commettere l'errore thin metal ruler), c'è QUALSIASI modo di utilizzare ELMAH con servizi WCF che hanno endpoint non HTTP?
Nota: Sono consapevole del fatto che siamo in grado di scaricare il codice sorgente Elmah e modificarlo per aggiungere uno spessore o rimuovere la dipendenza HttpContext, ma sto cercando di evitare che si biforcano il codice.
potrebbe verificare questo per l'utilizzo di Elmah nelle app della console: alcune potrebbero essere utili nella tua situazione: http://stackoverflow.com/questions/841451/using-elmah-in-a-console-application – user1191559