我有一个WCF REST服务,它通过webHttpRelayBinding和Azure Service Bus在“本地”和云端公开。
这在我的IIS 7.5 Express实例上运行良好,但是当我将其部署到Windows Server 2003 / IIS 6环境时,我开始收到以下错误:
无法激活该服务,因为它不支持ASP.NET兼容性。为此应用程序启用了ASP.NET兼容性。在web.config中关闭ASP.NET兼容模式,或者将AspNetCompatibilityRequirements属性添加到服务类型,其RequirementsMode设置为“Allowed”或“Required”。
我已经读过,我需要完全删除对ASP.NET的任何依赖,以解决此问题(请参阅here)。我重构了我的代码,以便包含服务定义的程序集没有对System.Web的任何引用,但我仍然得到错误。
所以我认为这意味着我根本无法在IIS中托管服务。如果是这样的话,我唯一的选择是否有Windows服务进行托管? W2在Win2k3上不可用。
答案 0 :(得分:0)
您是否尝试从web.config中的serviceHostingEnvironment元素中删除aspNetCompatibilityEnabled属性?
WAS本身可以在Win2k3上使用(这就是webhosted WCF服务的工作方式),但是IIS的应用程序池和激活模型与它的较新版本略有不同。