WCF 与 3.5 和 4.0 一起使用
Posted
技术标签:
【中文标题】WCF 与 3.5 和 4.0 一起使用【英文标题】:WCF with 3.5 and 4.0 together 【发布时间】:2011-02-10 03:38:11 【问题描述】:安装 .net 4 后,是否有人设法在 IIS7 上以 2.0 集成模式成功运行 wcf?
我发现安装 .net 4 删除了 svc 的 2.0 处理程序并用 .net 4 版本替换它们(这导致我的 v3.5 站点出现 404.17 错误),我设法通过运行让我的 3.5 站点再次运行ServiceModelReg.exe /i 来自 v3.0 文件夹 (Windows Commuication Foundation) 但删除了 4.0 映射,因此它们似乎是互斥的?
关于如何在同一台 IIS7 服务器上运行 4.0 和 3.5 WCF 站点的任何建议?
编辑 由于 .net 4、经典和集成 2.0 和 4.0,那里有 4 个应用程序池。该站点仍在使用集成的 2.0 应用程序池。事实是 svc 映射指向 4.0 isapi dll,我将 2.0 添加回来(修改了 web.config 以提供本地映射)但没有效果。
【问题讨论】:
【参考方案1】:我不想回答我自己的问题,但是..
我运行了 ServiceModelReg.exe (here) 来修复之前的安装,这给我留下了我期望的 svc 映射(指向 v2.0 和 v4.0 isapimodule)。不确定这只是我安装的 4.0 的问题,还是在 3.5 之后安装 4.0 的一般问题。
【讨论】:
【参考方案2】:我在新的 Win2008 R2 测试机上遇到 404.17 错误。
我在blog post 找到的解决方案运行良好,即在“.NET Framework 3.5.1 功能”中启用 WCF 激活功能
【讨论】:
【参考方案3】:我没有测试过这种情况。但我认为,如果 Microsoft 设计功能的实现中不存在错误,则以下内容应该有效:
对于每个网站,您都可以选择应用程序池(在 IIS 管理器中虚拟目录配置的“高级设置”中)。 .NET 4.0 安装后存在一些默认应用程序池:“ASP.NET v4.0”、“ASP.NET v4.0 Classic”、“Classic .NET AppPool”和“DefaultAppPool”。您还可以创建更多应用程序池。对于每个池,您可以选择使用 4.0 还是 3.5 (v2.0.50727) .NET 版本。
我希望你能解决你的问题。
最好的问候
【讨论】:
@oleg 感谢您的回复,我进行了编辑以提供有关正在使用的应用程序池的更多信息以上是关于WCF 与 3.5 和 4.0 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
我可以将 Windows Identity Foundation 3.5 与 .NET 4.5 一起使用吗?
在 WCF 和 .NET 4.0 中使用 TLS 1.1 或 1.2?