命名空间中不存在脚本。找不到ScriptService

时间:2012-09-27 19:38:37

标签: c# asp.net asp.net-ajax

我一直试图摆脱三天的编译错误。

错误如下:

> Error 1   The type or namespace name 'Script' does not exist in the
> namespace 'System.Web' (are you missing an assembly
> reference?)   D:\WebData\Intranet\depts\MSO\msow_reports\App_Code\SearchPract.cs  7   18  http://localhost/depts/MSO/msow_reports/
> Error 2   The type or namespace name 'ScriptService' could not be found
> (are you missing a using directive or an assembly
> reference?)   D:\WebData\Intranet\depts\MSO\msow_reports\App_Code\SearchPract.cs  14  2   http://localhost/depts/MSO/msow_reports/
> Error 3   The type or namespace name 'Script' does not exist in the
> namespace 'System.Web' (are you missing an assembly
> reference?)   D:\WebData\Intranet\depts\MSO\msow_reports\App_Code\SearchPract.cs  26  17  http://localhost/depts/MSO/msow_reports/

该项目是一个.net 3.5项目,我正在尝试导入Visual Studio 2010.我已经尝试更新到.net 4并将其保留为.net 3.5。我的理解是Script和ScriptService应该在System.Web.Extensions dll中。添加对此程序集的引用似乎不起作用。

请注意我的Web.config文件中的以下摘录:

<compilation debug="true">
  <assemblies>
    <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="eWorld.UI, Version=2.0.6.2393, Culture=neutral, PublicKeyToken=24D65337282035F2"/>
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
  </assemblies>
</compilation>

不满意的代码如下:

using System;
using System.Collections.Generic;
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Script.Services;

/// <summary>
/// Summary description for SearchPract
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class SearchPract : System.Web.Services.WebService {

    public SearchPract () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public string[] GetPracts(string prefixText, int count) 

我尝试将System.Web.Extensions.dll和System.Web.Extensions.Design.dll添加到Bin文件夹以及web.config文件中。浏览“我的解决方案”时,System.Web.Extensions程序集仍未显示在对象浏览器中。我认为这是问题的症结所在。我现在不知道该怎么做。

我想知道我是否忽视了一些显而易见的事情。

请告诉我我应该提供的其他信息。

2 个答案:

答案 0 :(得分:1)

使用.NET 2.0版,您可以添加由Microsoft开发的System.Web.Extensions.DLL版本1.0.61231.0,它适用于我的项目,使用单声道上一版本的ASP .net 2.0。

答案 1 :(得分:0)

来自MSDN文档,

ScriptService来自.NET 3.5版。

如果您的项目版本低于上述版本,那么显然它永远不会有效。

要使其正常工作,您需要将项目版本更改为更高版本。请按照以下步骤操作:

myProject Properties --> Application --> Target Framework --> Set it to >3.5