Installing ASP.NET 2.0 AJAX Extensions 1.0 in Windows SharePoint Services Version 3.0

You must install and configure Microsoft ASP.NET 2.0 AJAX Extensions 1.0 to work in a Windows SharePoint Services 3.0 environment. This topic describes the procedures to install and configure the ASP.NET AJAX 1.0 Extensions. The installation process deploys the ASP.NET AJAX 1.0 assembly (System.Web.Extensions.dll) to the Global Assembly Cache (GAC) and also installs the Microsoft AJAX Library JavaScript files. The configuration process tells Windows SharePoint Services 3.0 how to handle Web Parts that have ASP.NET AJAX functionality. It also registers the server controls as safe for use within Windows SharePoint Services 3.0.

Note that the procedure described below applies to .NET Framework 2.0. If you are using .NET Framework 3.5, change the version number in each of the XML code samples from Version=1.0.61025.0 to Version=3.5.0.0.

Important Important:

You must complete these steps for each front-end Web server in the server farm.

To install Microsoft ASP.NET 2.0 AJAX Extensions

  1. Download ASP.NET AJAX 1.0.

  2. To install the extensions, double-click the .msi file and follow the prompts.

  3. Extend the SharePoint web.config file, which is typically found in a directory with the following structure: drive\inetpub\wwwroot\VirtualDirectories\port number.

    1. Add the following <sectionGroup> elements within the <configSections> element.

      Xml
        <sectionGroup name="system.web.extensions"
        type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35">
      
        <sectionGroup name="scripting"
        type="System.Web.Configuration.ScriptingSectionGroup,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35">
      
        <section name="scriptResourceHandler"
        type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35" requirePermission="false" 
        allowDefinition="MachineToApplication"/>
      
        <sectionGroup name="webServices"
        type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35">
      
        <section name="jsonSerialization"
        type="System.Web.Configuration.ScriptingJsonSerializationSection,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35" requirePermission="false" 
        allowDefinition="Everywhere" />
      
        <section name="profileService"
        type="System.Web.Configuration.ScriptingProfileServiceSection,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35" requirePermission="false" 
        allowDefinition="MachineToApplication" />
      
        <section name="authenticationService"
        type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
        PublicKeyToken=31bf3856ad364e35" requirePermission="false" 
        allowDefinition="MachineToApplication" />
      
        </sectionGroup>
        </sectionGroup>
        </sectionGroup>
    2. Add the following controls declaration within the <pages> element, which is located within the <system.web> element.

      Xml
        <controls>
          <add tagPrefix="asp" namespace="System.Web.UI" 
          assembly="System.Web.Extensions, Version=1.0.61025.0, 
          Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </controls>
    3. Add the following assembly declaration within the <assemblies> element.

      Xml
        <add assembly="System.Web.Extensions, Version=1.0.61025.0, 
        Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    4. Add the following verb handlers within the <httpHandlers> element.

      Xml
        <add verb="*" path="*.asmx" validate="false" 
        type="System.Web.Script.Services.ScriptHandlerFactory, 
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35"/>
      
        <add verb="*" path="*_AppService.axd" validate="false" 
        type="System.Web.Script.Services.ScriptHandlerFactory, 
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35"/>
      
        <add verb="GET,HEAD" path="ScriptResource.axd" 
        type="System.Web.Handlers.ScriptResourceHandler, 
        System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35" validate="false"/>
    5. Add the following script module handler within the <httpModules> element.

      Xml
        <add name="ScriptModule" 
        type="System.Web.Handlers.ScriptModule, System.Web.Extensions, 
        Version=1.0.61025.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35"/>
    6. Add the following safe control entry within the <SafeControls> element, which is located within the <SharePoint> element.

      Xml
        <SafeControl Assembly="System.Web.Extensions, 
        Version=1.0.61025.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" 
        TypeName="*" Safe="True" />
    7. Add the following scripting web service handlers within the <configuration> element.

      Xml
        <system.web.extensions>
          <scripting>
            <webServices>
            <!-- Uncomment this line to enable the authentication 
            service. Include requireSSL="true" if appropriate. -->
            <!--
              <authenticationService enabled="true" 
              requireSSL = "true|false"/>
            -->
            <!-- Uncomment these lines to enable the profile service. 
            To allow profile properties to be retrieved and modified in 
            ASP.NET AJAX applications, you need to add each property 
            name to the readAccessProperties and writeAccessProperties 
            attributes. -->
            <!--
              <profileService enabled="true" 
              readAccessProperties="propertyname1,propertyname2" 
              writeAccessProperties="propertyname1,propertyname2" />
            -->
            </webServices>
            <!--
            <scriptResourceHandler enableCompression="true" 
            enableCaching="true" />
            -->
          </scripting>
        </system.web.extensions>
        <system.webServer>
          <validation validateIntegratedModeConfiguration="false"/>
          <modules>
            <add name="ScriptModule" preCondition="integratedMode" 
            type="System.Web.Handlers.ScriptModule, 
            System.Web.Extensions, Version=1.0.61025.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          </modules>
          <handlers>
            <remove name="WebServiceHandlerFactory-Integrated" />
            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" 
            preCondition="integratedMode" 
            type="System.Web.Script.Services.ScriptHandlerFactory, 
            System.Web.Extensions, Version=1.0.61025.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      
            <add name="ScriptHandlerFactoryAppServices" verb="*" 
            path="*_AppService.axd" preCondition="integratedMode" 
            type="System.Web.Script.Services.ScriptHandlerFactory, 
            System.Web.Extensions, Version=1.0.61025.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      
            <add name="ScriptResource" preCondition="integratedMode" 
            verb="GET,HEAD" path="ScriptResource.axd" 
            type="System.Web.Handlers.ScriptResourceHandler, 
            System.Web.Extensions, Version=1.0.61025.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          </handlers>
        </system.webServer>

Additional Resources

Tags : ajax


Community Content

Noelle Mallory - MSFT
Missing , in article

There is a typo in this article:

<controls>
<add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>

A "," belongs after "Version=1.0.61025.0".


jsum
Version=3.5.0.0
You'll need to change the version numbers to Version=3.5.0.0 (From Version=1.0.61025.0) if you're targetting version 3.5 of the framework.
Tags :

alexdresko
Recommendation to adjust for 3.5.0.0 did not work
I haven't tracked down the problem yet, but simply replacing 1.0.61025.0 with 3.5.0.0 caused sharedpoint to stop working altogether with no useful information in the logs.

Mikhail Dikov
Automated configuration of ASP.NET AJAX Extenssions 1.0 in SharePoint

This codeplex project contains (among many other things) a SharePoint feature, which will configure the web.config for all servers in a SharePoint farm:

http://www.codeplex.com/features

Tags : wss3.0 ajax

Thomas Lee
Found two missing commas

There are two missing commas in the code above. Make sure there's a comma "," between "Version=1.0.61025.0" and "Culture=neutral". You have to do this in two different places: <sectionGroup> and <controls> sections.

My entire sharepoint site was down because of this problem. I'm glad it was an easy fix.


Thomas Lee
IF YOU WANT US TO USE YOUR FANCY TECHNOLOGY MAKE THIS EASIER!!!
What a MESS! I have to do all this to get your AJAX to work? Didn't build it in huh? Didn't write a tool? Now I have to trudge through my web config files to implement your stuff....and it has errors!?!?!? Gezzzzz


PawnofGod
THIS IS Difficult

Keep getting a run time error. I've through it 5 times

Tags : easy way..

Anoosh Rahman
Here is the Easiest way

1.Open Visual Studio 2008 ,
2.Create a new Web Site name it as (say) TestWeb1 , choose .Net Framework 2.0
3.Copy your sharepoint web.config file and paste it to the TestWeb1 Web.config
4.Change the Properties of TestWeb1 , and change Target Framework Net Framework 3.5
5.Copy the Contents of new Web.config file of TestWeb1 to your sharepoint web.config


Tags : it - why do too hard

Page view tracker