我在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>
解决方案中的所有项目都面向框架4.0。
LE:我在尝试导入System.Linq;
时收到错误 using System.Linq;
答案 0 :(得分:19)
解决方案:似乎网络配置应该是:
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
答案 1 :(得分:5)
您的网站中是否有Imports System.Linq
(VB)或using System.Linq;
(c#)的代码文件?
似乎最简单的答案是它是一个错字。也许命名空间应该更正为System.Data.Linq
。
编辑: System.Linq应该是一个有效的命名空间,因为它提供了支持使用语言集成查询(LINQ)的查询的类和接口。&#34; (http://msdn.microsoft.com/en-us/library/system.linq.aspx)。它也默认导入系统级web.config。
所以,如果与我上面的建议无关,请不要确定这里发生了什么。你的machine.config或系统级web.config可能有问题吗?
编辑2: 我发现在这个级别添加System.Core程序集很奇怪。我相信这是包含System.Linq命名空间的程序集。也许删除它会有帮助吗?
编辑3:
默认情况下,在机器级web.config中导入System.Linq
。您可以删除代码文件中的行。
答案 2 :(得分:3)
有时它会因为它的乐趣而“消失”。如果您不需要它,只需将其删除即可。
否则,请在解决方案资源管理器中右键单击您的网站,然后添加对它的引用。
答案 3 :(得分:2)
我的Controller上没有Linq方法(Count,Where,toList等)。添加命名空间:
using System.Linq;
为我解决了这个问题。也许将来会有人帮助......
答案 4 :(得分:1)
我通过将System.Linq
命名空间添加到Views\Shared\Web.config
文件中的命名空间来解决了这个问题,例如,如下所示,位于WebApplication1
命名空间上方的底部第二位。
请注意,这位于Web.config
文件夹中的Views
,而不是网站的主要&#39; Web.config`。 < / p>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="System.Linq" />
<add namespace="WebApplication1" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 5 :(得分:0)
问题是你没有添加
debug="true|false" targetFramework="4.0"
编译标签中的。
答案 6 :(得分:0)
我遇到了同样的错误,但我的网络应用程序在框架v2.0上运行。将我的应用程序池从v2.0更改为v4.0。所有工作...快乐的日子
答案 7 :(得分:0)
要检查的另一件事是你的.csproj文件,特别是这些项:
<TargetFrameworkProfile>Profile47</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
如果您没有指定配置文件的文件夹,则可能需要手动将其更改为您拥有的文件夹。您也可以从https://www.microsoft.com/net/download/visual-studio-sdks下载目标。
不幸的是,我的同事用旧式PCL项目(profile-based PCL)发生了这种情况,所以他无法下载.NET Portable目标,但我不得不向他提供DLL。我的功能文件夹(C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETPortable \ v4.0 \ Profile \ Profile47)。
答案 8 :(得分:0)
对我来说,解决方案是:
转到:工具> Nuget程序包管理器>管理解决方案的NuGet程序包
安装 System.Linq 软件包。
答案 9 :(得分:0)
删除隐藏的 .vs 文件夹并重新启动Visual Studio,为我修复了该问题。