我有一个WCF服务托管在Web应用程序(IIS)中。我需要通过wsHttp
和另一个netTcp
暴露1个终点。我在IIS7环境中,使我可以托管基于非HTTP的服务。无论如何,当我浏览。 svc
文件使用的浏览器,我得到的错误:WCF以Web应用程序和兼容模式托管
The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application
谷歌搜索,我意识到,WCF在两种模式下运行 - 混合和ASP.NET兼容。当我应用属性
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
但是,似乎一旦将此属性应用于服务合同实现,我就无法使用非HTTP绑定。
我如何设置它,以便:
- 我可以支持非HTTP端点
- 我可以托管在一个Web应用程序的服务
- 我不ASPNET创建多个服务之一兼容性打开,另一个关闭
您使用的是ASP.NET功能吗?如果是这样,哪一个?它可以被删除吗? –
尚未 - 迄今(不确定如果我将在未来使用会话或上下文)。你是说如果我不使用任何asp.net功能,我应该能够关闭AspNetCompatibility,并将其托管在网络主机中? – DotnetDude
为什么不使用Windows服务公开服务? 我认为除非你使用WAS,否则第一和第二是不可能的。 –