【问题标题】:Web Service Configuration ProblemWeb服务配置问题
【发布时间】:2011-08-14 00:14:18
【问题描述】:

我从一个应用程序目录托管 2 个 WCF Web 服务和 1 个标准 .NET Web 服务。 .NET 服务和 1 个 WCF 服务完美运行;但是,其他 WCF 服务返回以下错误:

无法激活该服务,因为它不支持 ASP.NET 兼容性。为此应用程序启用了 ASP.NET 兼容性。在 web.config 中关闭 ASP.NET 兼容模式,或将 AspNetCompatibilityRequirements 属性添加到服务类型,并将 RequirementsMode 设置为“Allowed”或“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 服务运行。

这个问题出现在 IIS7 和我们托管在运行 IIS6 的 SBS2003 上的暂存环境中。

提前感谢您的所有帮助。
杰克

更新:
我可以通过删除我的开发系统上的应用程序来让它工作;但是,即使在删除应用程序并在那里重新创建后,问题仍然存在于我们的暂存服务器上。

解决方法:

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

好痛。

【问题讨论】:

  • 请将其发布为答案并将其标记为答案。
  • 这不是答案。这只是一个可怕的解决方法,问题再次出现在我的实时服务器上。有没有人对这个问题有真正的解决方案,或者知道是什么原因造成的?

标签: .net wcf web-services


【解决方案1】:

您不能在单个应用程序池下托管 2 个不同框架版本的服务。我的意思是,如果您在单个应用程序池下托管了 2 个 WebService(一个使用 Framework 2.0,另一个使用 Framework 4.0),那么任何一项服务都可以工作。第二个永远不会工作

解决方案:

    创建 2 个不同的应用程序池。 App1(目标框架 2.0)和 App2(目标框架 4.0)
    将 App1 池分配给在 Framework 2.0 中开发的服务。
    将 App2 池分配给在 Framework 4.0 中开发的服务。
    重启 IIS

它现在应该可以工作了。

【讨论】:

  • 感谢阿舒的回复;不幸的是,这两个项目都指向 3.5 框架。这得到了证实,因为在 IIS 中重新创建应用程序后,两个 Web 服务都运行在同一个 AppPool 上。
【解决方案2】:

解决方法:

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

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多