SharePoint 2010 User Profile Synchronization Errors

While implementing a new SharePoint 2010 farm, I ran into a number of issues while attempting to get the user profile synchronization to run correctly. I did discover that some additional configuration was needed around the profile synchronization account as I was dealing with a multi-domain forest and the domain NetBios name did not match the FQDN.

Even after verifying that my configuration was correct (as far as SharePoint was concerned), I was still running into issues with the Extensible Connectivity agent (part of FIM) associated with my User Profile Service Application. It would consistently fail, throwing 6801 and 6803 errors in the event log.

Error 6801
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.UriFormatException: Invalid URI: A port was expected because of there is a colon (‘:’) present but the port could not be parsed.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Web.HttpRequest.get_Url()
at Microsoft.SharePoint.Administration.SPAlternateUrl.get_ContextUri()
at Microsoft.SharePoint.WebControls.SPControl.SPSiteFromContextNoCache()
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(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle 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.5″

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.UriFormatException: Invalid URI: A port was expected because of there is a colon (‘:’) present but the port could not be parsed.   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)   at System.Web.HttpRequest.get_Url()   at Microsoft.SharePoint.Administration.SPAlternateUrl.get_ContextUri()   at Microsoft.SharePoint.WebControls.SPControl.SPSiteFromContextNoCache()   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(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle 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.5″

Error 6803

The management agent “MOSS-8e630c0a-434f-4af2-b8fe-a020bd3ef255″ failed on run profile “MOSS_FULLIMPORT_e6294a6e-3dcb-4ac5-86e2-24eddfeaa0e9″ because the server encountered errors.

Opening miisclient (%programfiles%\Microsoft Office Server\14.0\Synchronization Service\UIShell\miisclient.exe) revealed that my Extensible Connectivity agent was failing with a status of stopped-extension-dll-exception (which was confirmed by was visible in the event log).

A bad URI request was being formed somewhere along the way. FIM was expecting a URI formatted with a colon (“:”), which none of my alternate access mappings provided. (Question for the SharePoint product team – Who still runs their applications on non-standard ports?)

Thankfully, the FIM Synchronization Service can be configured manually to tidy these errors up.

  1. Browse to %programfiles%\Microsoft Office Server\14.0\Synchronization Service\UIShell
  2. Launch miisclient.exe
  3. Click the ‘Management Agents’ button in the toolbar to switch to the “Management Agents” pane
  4. Right click on the Management Agent with the “Extensible Connectivity” type called MOSS-{guid} and select “Properties”
  5. Click on the “Configure Connection Information” property pane
  6. At the bottom of the dialog, there should be a “Connection information” section which includes a “Connect To:” text box
  7. Change the hostname of the URI in this text box to direct://{HOST}:{PORT}…
  8. Click OK, and close the Synchronization Service Manager (miisclient)
  9. Start a full import and everything should now work.

Reference

CodePlex is Upgrading to TFS 2010

Just got the message:

CodePlex Project Contributors,

**The information in this e-mail applies to project coordinators and developers that are using TFS with the Team Explorer client.  If you are using Mercurial or a Subversion client, then nothing will change for you**

During the upcoming weeks we will be migrating all of the CodePlex TFS projects onto our new TFS 2010 servers.  This upgrade will allow us to support new TFS features and provide increased server performance and reliability.  The move will happen on a server by server basis, so expect each TFS server (TFS01 to TFS10) to be down for a few hours as data is migrated.  Updates on when each server will be offline and an estimate on when they will be back online will be posted on our system outage page: http://codeplex.codeplex.com/wikipage?title=System%20Outage%20Report.

As part of this migration, the URL of your TFS server will change and this will require you to update your projects source control bindings.  After your project has moved, instructions on how to connect with Team Explorer to the new TFS server can be found on the source control tab of your project under “Source Control Setup”.  For detailed instructions on updating your source control bindings see:http://codeplex.codeplex.com/wikipage?title=Updating%20Your%20TFS%20Source%20Control%20Bindings.  Additionally, if you connect to your project using Visual Studio Team Explorer 2005, you will need to install the 2005 forward compatibility pack: http://www.microsoft.com/downloads/details.aspx?FamilyID=22215e4c-af6f-4e2f-96df-20e94d762689.  If you connect using Team Explorer 2008, you will need to install the 2008 forward compatibility pack: http://www.microsoft.com/downloads/details.aspx?FamilyID=cf13ea45-d17b-4edc-8e6c-6c5b208ec54d.

Finally, the TFS 2010 upgrade process checks two build templates files into your project under \BuildProcessTemplates.  These templates can be removed safely as we currently do not support TF build.

Thanks,
The CodePlex Team

It looks like it’s going to be time to install some forward compatibility packs.

SharePoint Guidance

From MSDN:

Designing and developing rich, robust Microsoft® SharePoint® applications can be challenging. The following releases are designed to help solution developers and architects make the right decisions and follow proven practices when building applications for SharePoint. Each release contains guidance documentation, source code for reference implementations, reusable library code, and Quick Starts.

Definitely worth exploring further if you looking to see how others are building on top of the product stack and what the SharePoint MVPs view as essential for developing robust applications.

Reference

SharePoint 2010 Products scripted deployment

It seems I missed it when Microsoft published the SPModule PowerShell module to aid in a scripted installation of a SharePoint 2010 farm.

If anything, it can serve as a handy guide for how to script out individual actions pertaining to installation and farm maintenance.

Reference