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

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.

ImportantImportant:

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.

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

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

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

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

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

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

        <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

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


THIS IS Difficult

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

tfl - 15 11 09] Hi - and thanks for your post. You should post questions like this to the MSDN Forums at http://forums.microsoft.com/msdn or the MSDN Newsgroups at http://www.microsoft.com/communities/newsgroups/en-us/. You are much more likely get a quicker response using the forums than through the Community Content. For specific help about:
Visual Studio : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.vstudio%2C&
SQL Server : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.sqlserver%2C&
.NET Framework : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.dotnet.framework
PowerShell : http://groups.google.com/group/microsoft.public.windows.powershell/topics?pli=1
All Public : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public%2C&
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

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.

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

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

Page view tracker