Cannot find System.Web.Script.Service namespace error after upgrading to Visual studio 2010

戏子无情 提交于 2020-01-22 12:33:07

问题


I've just upgraded a VS 2008 project to VS 2010, converting the project but keeping the target as .NET 3.5 (SP1 is installed). My project worked without issue under VS 2008 on another machine.

I've added references to System.Web.Extensions.dll but I'm still getting the following errors from code in the App_Code folder:

1) Cannot find System.Web.Script.Service namespace.

2) Type 'System.Web.Script.Services.ScriptService' is not defined.

3) Type 'System.Runtime.Serialization.Json.DataContractJsonSerializer' is not defined.

Anyone have any ideas what the problem might be as I'm pretty stumped? :(


回答1:


In Visual Studio 2012, be sure to add reference for System.Web.Extensions as that is the one that holds System.Web.Script.Serialization.




回答2:


Seems there's a bug from Microsoft where Target Framework for v3.5 in VS2010 is v3.0 of the GAC! Moving assemblies with issue to v3.0 folder seems to start resolving issues, but a bit messy. Think I'll wait for Microsoft to bring out a proper fix for VS 2010!

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

Google translate helps with this link!

More detail of assemblies copied to v3.0 folder from v3.5 folder as a work-around to this VS 2010 bug:

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

If anyone else is encountering this issue and wants to track / vote up the status of this bug with Microsoft: https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-3-0-gac

Update - Microsoft posted the following fix to the bug report I raised:

To build a web site targetting to 3.5, please add a compiler tag in your web.config file like I paste below, so language compilation will pick up the right version of vbc.exe. You can create a new 3.5 web site, and the default web.config has those tags you can reference.

<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>



回答3:


  • Check your web.config assembly entries.

  • Check your .NET Framework target in your Visual Studio 2010 project, default is 4.0

  • Check IIS, make sure you are using the appropriate framework for your site. The new .NET 4.0 install can change your default Framework to 4.0.




回答4:


I've resolved a similar problem by changing my website's target framework from 3.5 to 4.0 and back to 3.5 again.

This resulted in a lot of additions to my web.config file that might be making it a lot easier for Visual Studio to support my project.

I never "upgraded my project to Visual Studio 2010", but this was an older aspx website and this may have been the first time it was opened with VS 2010.




回答5:


I've resolved a similar problem me too by changing my website's target framework from 3.5 to 4.0 and back to 3.5 again.



来源:https://stackoverflow.com/questions/3053181/cannot-find-system-web-script-service-namespace-error-after-upgrading-to-visual

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!