0

我有一个 WCF REST 服务,它通过 webHttpRelayBinding 和 Azure 服务总线在“本地”和云中公开。

这在我的 IIS 7.5 Express 实例上非常有效,但是当我将它部署到 Windows Server 2003 / IIS 6 环境时,我开始收到以下错误:

该服务无法激活,因为它不支持 ASP.NET 兼容性。为此应用程序启用了 ASP.NET 兼容性。在 web.config 中关闭 ASP.NET 兼容模式,或将 AspNetCompatibilityRequirements 属性添加到服务类型,并将 RequirementsMode 设置为“允许”或“必需”。

我读过我需要完全删除对 ASP.NET 的任何依赖项才能解决此问题(请参阅此处)。我已经重构了我的代码,以便包含服务定义的程序集没有对 System.Web 的任何引用,但我仍然收到错误消息。

所以我认为这意味着我根本无法在 IIS 中托管服务。如果是这种情况,我唯一的选择是让 Windows 服务进行托管吗?WAS 在 Win2k3 上不可用。

4

1 回答 1

0

您是否尝试从 web.config 中的 serviceHostingEnvironment 元素中删除 aspNetCompatibilityEnabled 属性?

WAS 本身在 Win2k3 上可用(这就是 webhosted WCF 服务的工作方式),但 IIS 的应用程序池和激活模型与较新版本的稍有不同。

于 2012-11-07T01:16:05.300 回答