SharePoint 2010 web.config file changes

I took a look at the new SharePoint 2010 web.config file, and here are the changes I have found so far:

New sections include:

  • 3 new SharePoint sections:
  • WorkflowServices – new SharePoint based section
  • OutputCacheProfiles – basic asp.net section
  • ObjectCache – basic asp.net section
  • New Workflow section
  • authorizedRuleTypes

New sections groups:

  • "system.web.extensions" – this drives the AJAX funtionality
  • "microsoft.sharepoint.client" – this drives the WCF client proxies for service applications
  • "ReportingServices" – for Reporting service integration
  • "Bpm" – Performance Point section

 Safe controls added:

  • Too many to list here, but all are newer 14.0.0.0 assemblies for SharePoint 14

 A flurry of merge actions (for understanding a merge action check this other blog entry)

 For IIS 6.0 system.web section:

  • No HttpHandlers are configured.
  • CustomErrors is Off
  • No HttpModules are configued

Several new assemblies are complied:

  • System.Web.Extensions
  • Microsoft.Web.CommandUI
  • Microsoft.SharePoint.Search
  • Microsoft.Office.Access.Server.UI
  • Microsoft.SharePoint.Publishing

 New ExpressionBuilder added:

  • SatelliteResources

 New Build Provider added:

  • ".json"  

Controls section added by default now:

  • "asp" of System.Web.UI

 Default siteMap provider is now called "CurrentNavigation" (use to be CurrentNavSiteMapProvider).  Includes new providers:

  • ExtendedSearchXmlContentMapProvider
  • GlobalNavigation
  • CurrentNavigation
  • MySiteSubNavProvider

Removed the:

  • UsagePagesSiteMapProvider

New WebPart Transformers:

  • TransformableBIDataProviderToFilterValuesTransformer
  • TransformableBIDataProviderToWebPartParametersTransformer
  • TransformableBIDataProviderTransformer
  • TransformableFilterValuesToEntityInstancesTransformer

New Mobile Controls Section:

  • SPMobileHtmlDeviceAdapters
  • SPMobileChtmlDeviceAdapters
  • SPMobileXhtmlDeviceAdapters

SessionState is removed from the IIS 6.0 system.web section

FULL IIS 7.0 "system.webServer" section has been added

  • Modules removed
    • OutputCache
    • FormsAuthenciation
    • UrlAuthorization
    • WindowsAuthentication
    • RoleManager
    • Session 
  • Handlers removed
    • SPHttpHandler!!! – everything is done via the modules!

System.Workflow.ComponentModel.WorkflowCompiler

  • In SP2010, you cannot use a "While", "ConditionedActivityGroup" or a "Replicator" activity in SharePoint web applications.  They have set "Authorized" to "False"!!! – WHY?
  • Rather than all types in mscorlib, they have explicitly set it so you can only use
    • Guid
    • DateTime
    • Boolean
    • Double
    • String
    • Hashtable
    • ArrayList
    • DebuggableAttribute
    • ComplationRelaxationAttribute
    • RuntimeCompatibilityAttribute
    • Int32
    • TimeSpan
    • Generic Collections
  • New authorized types
    • SPItemKey
    • SPWorkflowUserContext
  • New assemblies
    • Microsoft.Office.Access.Server.Application
    • Microsoft.Office.Workflow.Actions

Four new location settings with a timeout of 3600ms:

  • _layouts/UploadEx.aspx
  • _layouts/ctdmsettings.aspx
  • _layouts/policyconfig.aspx
  • _layouts/metanavsettings.asxp

Two new location settings with webServices protocol clear:

  • _vti_bin/EwaInternalWebService.json
  • _vti_bin/DynamicGridContent.json

New location settings random:

  • _layouts/pptInsertPicture.aspx
  • _vti_bin/powerpointBroadcastHost.asmx
  • _vti_bin/powerpointBroadcastHost_1_0.asmx – what the heck is this for I wonder?
  • _vti_bin/present.asmx

Two new appSettings keys – why the hell these are here and not a config section is beyond me!

  • PptServer_Pipe
  • PptServer_BroadcastManager

Follow me on twitter!

SharePoint SP2, why a web.config change? Why not MergeActions and webconfig.sps.xml?

If you look at the SharePoint web.config file for a web application, you will notice the following section handler:

 <section name="MergedActions" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Looking at the section you will see something similar too:

 <Action id="fc002d03-7839-402b-a94a-1c9a2d40b63d" sourceFile="C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12configwebconfig.sps.xml" />

Then referencing the webconfig.sps.xml file, you will see that a merge action ADDS to your existing web.config file!

<add path="configuration/SharePoint/SafeControls" id="{FC002D03-7839-402b-A94A-1C9A2D40B63D}">
  <SafeControl Assembly="Microsoft.SharePoint.Portal, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Portal.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.Internal.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Publishing.Navigation" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls.FieldTypes" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.WebControls.FieldTypes" TypeName="*" />
  <SafeControl Assembly="Microsoft.Office.Excel.WebUI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Excel.WebUI" TypeName="*" />
  </add>
 

 So why do we have to worry about a web.config change if all the SharePoint Team has to do is modify the webconfig.sps.xml???  Hmmm…maybe someone didn't know about it in the design team?

 Chris