Nous travaillons sur une application à trois niveaux, et nous avons été autorisés à utiliser les derniers et les meilleurs (MVC2, IIS7.5, WCF, SQL2k8, etc). Le niveau applicatif est exposé aux différentes applications Web par les services WCF. Puisque nous contrôlons à la fois le service et le côté client, nous avons décidé d'utiliser les liaisons net.tcp pour leur avantage de performance par rapport à HTTP.Elmah pour les applications de protocole non-HTTP OU Elmah sans HttpContext
Nous aimerions utiliser ELMAH pour la journalisation des erreurs, à la fois sur les applications Web et les services. Voici ma question. Il y a beaucoup d'informations sur l'utilisation d'ELMAH avec WCF, mais c'est tout pour les liaisons HTTP. Est-ce que quelqu'un sait si/comment vous pouvez utiliser ELMAH avec les services WCF exposant des points de terminaison non-HTTP?
Je suppose que non, parce qu'ELMAH veut le HttpContext, qui exige que le drapeau AspNetCompatibilityEnabled soit vrai dans le web.config. A partir de MSDN:
IIS 7.0 et WAS permettent aux services WCF de communiquer sur des protocoles autres que HTTP. Toutefois, les services WCF exécutés dans des applications qui ont activé le mode de compatibilité ASP.NET ne sont pas autorisés à exposer des points de terminaison non-HTTP. Une telle configuration génère une exception d'activation lorsque le service reçoit son premier message.
S'il est vrai que vous ne pouvez pas utiliser ELMAH avec les services WCF ayant extrémités non-HTTP, la question de suivi est: Peut-on utiliser ELMAH de telle manière qui n'a pas besoin HttpContext? Ou plus généralement (afin de ne pas commettre l'erreur thin metal ruler), existe-t-il un moyen d'utiliser ELMAH avec les services WCF ayant des points de terminaison non-HTTP? Je suis conscient que nous pouvons télécharger le code source Elmah et le modifier pour ajouter un shim ou supprimer la dépendance HttpContext, mais j'essaie d'éviter de forcer le code.
pourrait vérifier cela pour l'utilisation Elmah dans les applications de console - certaines d'entre elles peuvent être utiles dans votre situation: http://stackoverflow.com/questions/841451/using-elmah-in-a-console-application – user1191559