命名空间"System"中不存在类型或命名空间名称"Linq"

gig*_*igi 25 .net asp.net wcf

我在IIS的网站上托管了一个wcf服务,我似乎遇到了这个问题.在我的web.config中我有这个:

<system.web>
        <compilation>
            <assemblies>
                <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
        </compilation>
    </system.web>
Run Code Online (Sandbox Code Playgroud)

解决方案中的所有项目都面向框架4.0.

LE:当我尝试导入System.Linq时出现错误;

 using System.Linq;
Run Code Online (Sandbox Code Playgroud)

gig*_*igi 19

解决方案:似乎Web配置应该是:

<system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)

  • 我有这个问题,那条线已经存在. (12认同)

pse*_*der 5

您的站点中是否有Imports System.Linq(VB)或using System.Linq;(c#)的代码文件?

似乎最简单的答案是它是一个错字.也许应该更正命名空间System.Data.Linq.

编辑:System.Linq应该是一个有效的命名空间,因为它"提供了支持使用语言集成查询(LINQ)的查询的类和接口." (http://msdn.microsoft.com/en-us/library/system.linq.aspx).它也默认导入系统级web.config.

所以,如果与我上面的建议无关,不确定这里发生了什么.你的machine.config或系统级web.config可能有问题吗?

编辑2:我觉得很奇怪你在这个级别添加System.Core程序集.我相信这是包含System.Linq命名空间的程序集.也许删除它会有帮助吗?

编辑3: System.Linq默认导入机器级web.config.您可以删除代码文件中的行.