升级到Visual Studio 2010后,找不到System.Web.Script.Service命名空间错误

时间:2010-06-16 12:27:01

标签: asp.net json .net-3.5 visual-studio-2010

我刚刚将VS 2008项目升级到VS 2010,转换项目但将目标保持为.NET 3.5(已安装SP1)。我的项目在另一台机器上的VS 2008下没有问题。

我添加了对System.Web.Extensions.dll的引用,但我仍然从App_Code文件夹中的代码中收到以下错误:

1)找不到System.Web.Script.Service命名空间。

2)未定义类型'System.Web.Script.Services.ScriptService'。

3)未定义类型'System.Runtime.Serialization.Json.DataContractJsonSerializer'。

任何人都有任何想法可能是什么问题,因为我很难过? :(

5 个答案:

答案 0 :(得分:16)

在Visual Studio 2012中,请务必添加System.Web.Extensions的引用,因为该引用包含System.Web.Script.Serialization

答案 1 :(得分:5)

似乎有一个来自Microsoft的错误,其中VS2010中v3.5的Target Framework是GAC的3.0版本!将问题移动到v3.0文件夹的程序集似乎开始解决问题,但有点乱。想想我会等待微软为VS 2010带来正确的解决方案!

http://www.cnblogs.com/dudu/archive/2010/06/24/1764549.html

Google翻译有助于此链接!

从v3.5文件夹复制到v3.0文件夹的程序集的更多细节,作为解决此VS 2010错误的解决方法:

http://forums.asp.net/p/1569744/3942724.aspx

如果有其他人遇到此问题,并希望跟踪/投票通知Microsoft的此错误状态: https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-3-0-gac

更新 - 微软对我提出的错误报告发布了以下修复:

要构建一个目标为3.5的网站,请在web.config文件中添加一个编译器标记,就像我在下面粘贴一样,因此语言编译将选择正确版本的vbc.exe。您可以创建一个新的3.5网站,默认的web.config包含您可以引用的那些标记。

<system.codedom>
  <compilers>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="OptionInfer" value="true"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
  </compilers>
</system.codedom>

答案 2 :(得分:1)

  • 检查您的web.config程序集 条目。

  • 检查Visual Studio中的.NET Framework target 2010年项目,默认为4.0

  • 检查IIS,确保使用适当的框架 你的网站。新的.NET 4.0安装可以将您的默认框架更改为4.0。

答案 3 :(得分:0)

通过将我的网站目标框架从3.5更改为4.0并再次回到3.5,我解决了类似的问题。

这导致了我的web.config文件的大量添加,这可能使Visual Studio更容易支持我的项目。

我从未“将我的项目升级到Visual Studio 2010”,但这是一个较旧的aspx网站,这可能是第一次使用VS 2010打开。

答案 4 :(得分:0)

通过将我的网站目标框架从3.5更改为4.0并再次回到3.5,我也解决了类似的问题。