2011-04-27 115 views
8

我从应用程序目录托管2个WCF Web服务和1个标准.NET Web服务。 .NET服务和WCF服务中的一个完美工作;然而,其他的WCF服务返回以下错误:Web服务配置问题

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中还允许所有的网络服务功能。

此问题在IIS7和运行IIS6的SBS2003上承载的我们的暂存环境中都有介绍。

非常感谢您的帮助。
杰克

UPDATE:
我能够得到它通过删除在我的开发系统中的应用工作;但是,即使在删除应用程序并在其中重新创建应用程序之后,问题仍然存在于我们的登台服务器上。

解决方法:

  1. 从IIS
  2. 重新创建direcotry
  3. 创建新的应用程序池
  4. 在direcotry的属性中删除应用程序,创建应用程序和其关联到新的应用程序池。

真是痛苦。

+1

将此贴为答案并将其标为答案。 – 2011-04-28 19:41:38

+0

这不是答案。这只是一个可怕的工作,而且问题再一次出现在我的现场服务器上。有没有人有这个问题的真正的解决方案,或任何想法是什么造成这个问题? – 2011-06-21 18:25:49

回答

0

解决方法:

  • 从IIS
  • 重新创建direcotry
  • 创建新的应用程序池
  • 在direcotry的属性中删除应用程序,创建应用程序和 其关联到新的应用程序池。
3

您不能在单个应用程序池中承载2个不同的框架版本的服务。我的意思是,如果您在单个应用程序池中托管了2个WebService(一个使用Framework 2.0,另一个使用Framework 4.0),则任何一个服务都可以工作。第二行不通

SOLUTION:

    创建2个不同的应用程序池。 App1(Target Framework 2.0)和App2(Target Framework 4。0)
    将App1池分配给在Framework 2.0中开发的服务。
    将App2池分配给在Framework 4.0中开发的服务。
    重新启动IIS

它现在应该工作。

+0

感谢Ashu的回复;不幸的是,这两个项目都指向了3.5框架。这是因为在IIS中重新创建应用程序后,两个Web服务都运行在同一个AppPool上。 – 2011-05-23 15:09:12