我从应用程序目录托管2个WCF Web服务和1个标准.NET Web服务. .NET服务和1个WCF服务完美运行;但是,其他WCF服务返回以下错误:
The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as ‘Allowed’ or ‘required’.
两个WCF Web服务都有这条线
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
和web.config文件有
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
当我改变时,为混合添加更多混乱
AspNetCompatibilityRequirementsMode.Allowed
至
AspNetCompatibilityRequirementsMode.required
服务工作得很好.
另外,改变
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
至
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
在web.config中也允许所有Web服务运行.
在运行IIS6的SBS2003上托管的IIS7和我们的登台环境中都会出现此问题.
提前感谢您的所有帮助.
可靠的人
更新:
通过删除我的开发系统上的应用程序,我能够使它工作;但是,即使在删除应用程序并在那里重新创建它之后,问题仍然存在于我们的登台服务器上.
周围的工作:
>从IIS中删除应用程序
>重新创建目标
>创建一个新的应用程序池
>在direcotry的属性中,创建Application并将其关联到新的Application Pool.
多么痛苦.
解决方法
您无法在单个应用程序池下托管2个不同的框架版本的服务.我的意思是,如果您在单个应用程序池下托管了2个WebService(一个使用Framework 2.0,另一个使用框架4.0),那么任何一个服务都可以工作.第二个永远不会奏效
解:
创建2个不同的应用程序池App1(目标框架2.0)和App2(目标框架4.0)
将App1池分配给在Framework 2.0中开发的该服务.
将App2池分配给在Framework 4.0中开发的该服务.
重启IIS
它现在应该工作.