C# WCF服务使用了错误的配置文件?

C# WCF服务使用了错误的配置文件?,c#,wcf,iis,web-config,C#,Wcf,Iis,Web Config,我有一个WCF服务应用程序托管在IIS 7.5中。MVC应用程序绑定到根URL(例如www.myapp.com),而服务位于“www.myapp.com/services”。服务库和MVC应用程序参考.Net 4.0。此外,服务应用程序和mvc应用程序存储在两个单独的目录中(即,服务应用程序不在mvc应用程序的子目录中) MVC应用程序加载良好。但是,当我加载服务URL或在IIS中浏览服务应用程序目录时,会出现以下错误: Compiler Error Message: CS0234: T

我有一个WCF服务应用程序托管在IIS 7.5中。MVC应用程序绑定到根URL(例如www.myapp.com),而服务位于“www.myapp.com/services”。服务库和MVC应用程序参考.Net 4.0。此外,服务应用程序和mvc应用程序存储在两个单独的目录中(即,服务应用程序不在mvc应用程序的子目录中)

MVC应用程序加载良好。但是,当我加载服务URL或在IIS中浏览服务应用程序目录时,会出现以下错误:

    Compiler Error Message: CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

    Source Error:



    Line 25:       <namespaces>
    Line 26:         <add namespace="System.Web.Helpers" />
    Line 27:         <add namespace="System.Web.Mvc" />
    Line 28:         <add namespace="System.Web.Mvc.Ajax" />
    Line 29:         <add namespace="System.Web.Mvc.Html" /> 


Source File: e:\myapp\Web.config    Line: 27 
编译器错误消息:CS0234:命名空间“System.Web”中不存在类型或命名空间名称“Mvc”(是否缺少程序集引用?)
源错误:
第25行:
第26行:
第27行:
第28行:
第29行:
源文件:e:\myapp\Web.config行:27
服务程序集/项目未引用System.Web.Mvc

看起来MVC应用程序web.config(而不是服务web.config)正在根据服务应用程序二进制文件进行评估。我到处寻找补救办法,非常感谢您的帮助


最后,我的本地IIS实例上不会发生此错误。

您可以尝试通过向WCF服务配置文件中添加类似的内容来清除继承的父配置设置

  <system.web>
    <pages>
      <namespaces>
        <clear/>
      </namespaces>
    </pages>
  </system.web> 


您需要为包含该服务的虚拟目录创建一个应用程序


这非常简单,请转到IIS管理界面,右键单击“/Services”虚拟目录并选择“创建应用程序”

这是因为ASP.NET将web.config文件合并到层次结构中。只需将
system.web
节包装到MVC的web.config中,即可禁用该节的继承,如下所示:

 <location path="." inheritInChildApplications="false">
    <system.web>
      ........
    </system.web>
 </location>

........

您是否在一个虚拟目录中同时包含MVC应用程序和WCF web服务?否,但包含服务应用程序的虚拟目录包含在MVC站点中。很抱歉,服务应用程序已经是一个应用程序,而不是虚拟目录。我已经纠正了原来的问题描述。这是有效的。然而,我们有另一个web应用程序和服务应用程序配置类似,它从来没有产生过问题的错误(我相信该应用程序是ASP.NET3.5)