Update 2011-07-13: This issue was fixed in the re-released version of the June 2011 Cumulative Update. If you have installed the initial release of the June 2011 Cumulative Update, it is recommended to install the re-released version to ensure the issues in the first release are resolved.
After installing Service Pack 1 for SharePoint 2010, my User Profile Synchronization began throwing errors in the Windows Event Log. The most concerning one was the following:
The extensible extension returned an unsupported error. The stack trace is: "System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.PlatformNotSupportedException: Microsoft SharePoint is not supported with version 4.0.30319.235 of the Microsoft .Net Runtime. at Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Farm() at Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& farm, Boolean& isJoined) at Microsoft.SharePoint.WebControls.SPControl.SPWebEnsureSPControl(HttpContext context) at Microsoft.SharePoint.SPContext.get_Current() at Microsoft.Office.Server.UserProfiles.ProfileManagerInstance.GetApplicationProxy() at Microsoft.Office.Server.UserProfiles.ProfileImportExportService.GetPartitionIds() --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Office.Server.WebServiceDirectProxy.WebMethodInfo.Invoke(Object webServiceInstance, Object[] args) at Microsoft.Office.Server.WebServiceDirectProxy.Invoke(String methodName, Object[] args) at Microsoft.Office.Server.UserProfiles.ManagementAgent.ProfileImportExportDirect.GetPartitionIds() at Microsoft.Office.Server.UserProfiles.ManagementAgent.ProfileImportExportExtension.Microsoft.MetadirectoryServices.IMAExtensibleFileImport.GenerateImportFile(String fileName, String connectTo, String user, String password, ConfigParameterCollection configParameters, Boolean fFullImport, TypeDescriptionCollection types, String& customData) Forefront Identity Manager 4.0.2450.34"
It seemed like the Forefront Identity Manager began targeting .NET 4 all of a sudden instead of .NET 2/3.5. In the following config file, I found that a reference to .NET 4 had been added to the supported runtimes:
C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\Bin\miiserver.exe.config
I simply removed the v4.0 reference and it started working again.
That’s it. Not sure why this was added in Service Pack 1, but this resolves the issues.
Update: Be sure to restart both Forefront Identity Manager services in the Windows Services and perform a full synchronization after making this change.