Some random issues with Beta 2 Technical Refresh of MOSS 2007
Its been quite some time since the B2TR builds for Microsoft Office SharePoint Server 2007 were released. The builds have been released as patches and the general upgrade experience has been something that has helped us learn a lot about upgrades and patching scenarios. Amongst all the scenarios that we have seen there have been some that have been dominant in nature and affected a large number of users while there were some that are the on-off types and occurring in an essentially random manner. In this post I would be talking about some that have been very erratic and have had a significant impact:
------------
ISSUE: Beta2 to Beta2 TR upgrade fails with a MSI error.
ERROR: The installation of this package failed. Please see for more information." with the error code 1603
EVIDENCE: Navigate to the %temp% directory, the Windows Installer logs would show a error as follows:
Product: Microsoft Windows SharePoint Services 3.0 -- Error 1406. Setup cannot write the value QMEnable to the registry key \Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS\Diagnostics. Verify that you have sufficient permissions to access the registry or contact Microsoft Product Support Services (PSS) for assistance. For information about how to contact PSS, seePSS10R.CHM.
RESOLUTION:
- Open the Registry Editor [Start->Run->regedit].
- Navigate to HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS\Diagnostics
- Right Click, select New ->DWORD Value. Change the name to 'QMEnable' without the quotes.
- Change the value to 0
ROOT CAUSE:
This error is misleading to say the least. The error reported in the log files is about permissions, however, the patch installer searches the registry for the key QMEnable and does not seem to find it. However, it will also find that the component requiring this registry key is installed and hence will try to repair the installation. But in order to do so, it will try to use the value for this key from the registry which in the first place was not there. And hence the failure.
-------------
-------------
-------------
ISSUE: Errors in the application event log.
ERROR:
ProblemDescription: Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: <somedate>
Time: <sometime>
User: <domain\username>
Computer: <computername>
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{61738644-F196-11D0-9953-00C04FD919C1}
to the user <domain\username> SID (X-X-X-XX-XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXX). This security permission can be modified using the Component Services administrative tool.
For more information, see Help and Support Center at https://go.microsoft.com/fwlink/events.asp.
RESOLUTION:
Navigate to Start->Control Panel->Administrative Tools->Component Services
Under Console Root, navigate to Component Services->Computers->My Computer->DCOM Config.
Right click IIS WAMREG Admin service and select properties
In the Property pane, switch to the Security tab.
Click Edit on the Launch and Activation Permissions section and you should see that only administrators and service have rights here. Add your service account in here as well to match the admin rights and those errors should go away.
-------------
-------------
-------------
ISSUE: Enabling BDC with SSO authentication, throws the following error.
ERROR:
Exception thrown while performing the BDC query in Entity Picker Microsoft.Office.Server.ApplicationRegistry.MetadataModel.InvalidMetadataPropertyException: The Type name for the single sign-on provider is not valid. ---> System.TypeLoadException: Could not load type 'Microsoft.SharePoint.Portal.SingleSignOn.SpsSsoProvider' from assembly 'Microsoft.SharePoint.Portal.SingleSignOn, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at Sys...
RESOLUTION:
The xml tags in the BDC xml file are case sensitive and there was a recent update to the assembly type names. So you would need to replace the tag
<Property Name ="SsoProviderImplementation" Type="System.String">Microsoft.SharePoint.Portal.SingleSignOn.SpsSsoProvider, Microsoft.SharePoint.Portal.SingleSignOn, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
To read as:
<Property Name ="SsoProviderImplementation" Type="System.String">Microsoft.SharePoint.Portal.SingleSignon.SpsSsoProvider, Microsoft.SharePoint.Portal.SingleSignon, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
~Harsh
Blogged with Microsoft® Office® Word 2007 Beta2 TR
Comments
Anonymous
October 11, 2006
Hi Harsh Whats the correct way to uninstall Sharepoint 2007, when B2TR fails? Cheers! AlpeshAnonymous
October 19, 2006
The comment has been removedAnonymous
October 22, 2006
Hi Harsh Thanks for the reply. Since I did not have anything on the DB, I deleted teh DB as well. By the time I read your message, I had done all of the above. I am just writing a post with details of what I did and how I got to B2TR. Will keep you in loop. Cheers!Anonymous
November 01, 2006
I am the type of guy who prefers a clean event log and when one pops up I do my best to fix it. ...Anonymous
November 07, 2006
I am the type of guy who prefers a clean event log and when an error pops up I do my best to...Anonymous
March 05, 2007
I can't read "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\SharePoint" registery key on 64-bit OS machine. It worked fine on 32-bit machine though. Here is my javascript function function IsSharePointInstalled(spReg) { var shellObject = new ActiveXObject("WScript.Shell"); var spRegV3 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\SharePoint"; try { var checkInstalled = shellObject.RegRead(spRegV3); if (checkInstalled == "Installed") { return true; } return false; } catch(e) { return false; } } any idea pls!