Saturday, August 13, 2011

Secure Token Service related error 800703fa

While configuring SharePoint 2010 Farms, sometimes while using Claims Authentication the below error used to popup every morning on the front end servers. The strange thing is that it would disappear after an application pool recycle.

Retrieving the COM class factory for component with CLSID {080D0D78-F421-11D0-A36E-00C04FB950DC} failed due to the following error: 800703fa.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ServiceModel.FaultException`1[[System.ServiceModel.ExceptionDetail, System.ServiceModel, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089]]: Retrieving the COM class factory for component with CLSID {080D0D78-F421-11D0-A36E-00C04FB950DC} failed due to the following error: 800703fa.

If you look at the Stack trace, it becomes clear that the error is related to the WCF Service and in this case, it was related to the Secure Token Service (STS) application. To fix this error, open up IIS and navigate to the application pools section. In that are open the SecureTokenServiceApplication pool account and modify the “Load User Profile” property in advanced settings.

By default this property is set to False, change it to True and this should fix the error.


SharePoint 2010 Disable Mobile Page Redirect

When deploying SharePoint Farms, it is very important to consider the mobile aspects of using SharePoint also. Sometimes, it is very easy to miss this aspect. Out of the box, SharePoint 2010 provides few basic mobile pages. When you browse from a mobile, then you will be redirected to a different page rather than the regular publishing/wiki page you would see. You will be redirected to a page in layouts folder: /_layouts/mobile/mblwp.aspx.

If you are using a custom branded page for SharePoint 2010, then you may not want the users not to redirect to the out of the mobile page when browsing from their mobile.  The easiest and supported way to do this is to add a web.config entry for the respective web application. The below entry needs to be added under the node <system.web>:

   1:  <browserCaps>

   2:   <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

   3:   <filter>isMobileDevice=false</filter>

   4:  </browserCaps> 

There are other ways to change this setting, specifically modifying the compat.browser file in the “App_Browsers” folder located in the application’s virtual directory. In here, you can disable the setting for a specific mobile. For example, to disable the redirect on IPhone, you would modify the isMobileDevice setting to false. By default it is set to true:

   1:  <!-- iPhone Safari Browser -->

   2:      <!-- sample UA "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20" -->

   3:      <browser id="iPhoneSafari" parentID="AppleSafari">

   4:          <identification>

   5:              <userAgent match="iPhone" />

   6:              <userAgent match="Mobile" /> 

   7:          </identification>

   8:          <capabilities>

   9:              <capability name="isMobileDevice"                    value="true" />

  10:              <capability name="canInitiateVoiceCall"              value="true" />

  11:              <capability name="optimumPageWeight"                 value="1500" />

  12:              <capability name="requiresViewportMetaTag"           value="true" />

  13:              <capability name="supportsTouchScreen"               value="true" />

  14:              <capability name="telephoneNumberDetectionDisabled"  value="true" />

  15:          </capabilities>

  16:      </browser>