2

我创建了一个 WCF 4 路由器服务并将其托管在 IIS7 中。它在我的开发机器上运行良好,但是当我部署到 QA 服务器时返回以下消息:

无法读取配置部分“路由”,因为它缺少部分声明

它抱怨的部分是标准的 WCF4 路由部分:

   <routing>
      <filters>
        <filter name="MatchAllFilter1" filterType="MatchAll" />
      </filters>
      <filterTables>
        <filterTable name="ServiceRouterTable">
          <add filterName="MatchAllFilter1" endpointName="WCF_XXXService" />
        </filterTable>
      </filterTables>
    </routing>

这应该是库存标准,但我从 IIS 收到上述错误。有人对我如何解决此问题有任何建议吗?

4

4 回答 4

3

好的,终于在这里找到了解决方案:

.NET Framework 4(以及因此 ASP.NET 4)的根配置文件(machine.config 文件和根 Web.config 文件)已更新,以包含 ASP.NET 3.5 中的大部分样板配置信息在应用程序 Web.config 文件中找到。由于托管 IIS 7 和 IIS 7.5 配置系统的复杂性,在 ASP.NET 4 和 IIS 7 和 IIS 7.5 下运行 ASP.NET 3.5 应用程序可能会导致 ASP.NET 或 IIS 配置错误。

如果可行,我们建议您使用 Visual Studio 2010 中的项目升级工具将 ASP.NET 3.5 应用程序升级到 ASP.NET 4。Visual Studio 2010 自动修改 ASP.NET 3.5 应用程序的 Web.config 文件以包含 ASP.NET 4 的适当设置。

在此处阅读更多内容: aspnet4 重大更改

于 2010-09-21T13:52:42.010 回答
0

一个快速的谷歌出现了这个:

如果您将站点升级到 .NET 4,并且不将应用程序池升级为使用 .NET 4,您会得到这个。.NET 4 的 machine.config 文件声明了此部分,而早期版本没有它(除非您手动添加它)。在 IIS 7 中,选择站点后,在右侧窗格中选择基本设置。这将弹出一个对话框,其中包含您的应用程序池的名称。然后从显示的列表中选择应用程序池树节点和应用程序池。从此处的右侧窗格中选择基本设置,您可以更改框架版本。

这里

于 2010-09-21T09:54:04.287 回答
0

您可以尝试从 FrameworkXXX\microsoft.net\v4.0.30319 文件夹重新运行 aspnet_regiis 并重置 IIS 吗?

于 2010-09-22T07:04:37.870 回答
0

检查与站点的应用程序池关联的 .Net 框架。如果您需要更改它,请运行iisreset -force以确保更改生效。

于 2017-06-03T12:24:23.647 回答