我们有一个使用DataServiceHost类自托管WCF数据服务的Windows服务。一切正常,但如果可能的话,我们想将一些HTTPModule连接到服务。其中一个HTTP模块用于自定义基本身份验证,另一个用于审计(包括响应,这就是为什么HTTP模块可以很好地工作)。
请记住,我们是作为常规Windows服务运行的,因此我们没有web.config,该服务不是由IIS托管,也不是ASP.Net应用程序。
所以,我的问题是:
答案 0 :(得分:0)
WCF不会在与标准ASP.NET应用程序相同的请求管道上运行,但如果您为ASP.NET兼容性配置服务,则可以利用许多ASP.NET功能(如会话)。
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
但是,看起来你只需要一些能让你像HTTPModules为ASP.NET应用程序那样跳进管道的东西。在这种情况下,有很多选项。您可以查看this page了解大量样本。
您提到了身份验证,WCF中内置了很多选项,可以帮助您免于推出自己的解决方案。请查看here。