At a customer I was building a demo site to convince the management of the power of SharePoint 2010. The plan was to show some fancy stuff with Visio Graphics Services, Infopath Forms, workflows etc. For this we needed, obviously, the Enterprise license. So I opened CA, browsed to the Manage service applications part to make a new Visio Graphics Service Application… The next image indicated this was not possible. My conclusion was that a Standard license was installed (duh).
But I’m stubborn and looked to the Upgrade and Migration part of CA because I was not sure that the Standard license was used at installation. The Convert License Type page showed me this:

Hmmmm…strange, I thought that the license type should show up here.
So I also looked at Upgrade and Migration > Enable Enterprise Features (see below, first image) and Enable Features on existing sites (below, second image).
The page “Enable features on existing sites” says that the Standard features can be enabled what should indicate that a Standard license is used, but the “Enable Enterprise features” page indicates the opposite. Confused…
So I wanted to know another way to check the license type. My colleague Waldek Mastykarz (http://blog.mastykarz.nl) told me to look into the registry on the SharePoint server at this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Registration\{90140000-110D-0000-1000-0000000FF1CE}
Clicking on the key DigitalProductID indicated the license is a MOSS FIS Enterprise license (see below).
But…this should not be a reason for all the vague licensing information SharePoint shows. So Waldek found a kb article (http://support.microsoft.com/kb/2143810) about FIS licenses that do not activate all product features. When I executed the PowerShell commandlet for the GUID on the SharePoint server, one of the GUIDs from the kb article showed up. So all this indicated a (more or less) valid license was used, but it was too old.
The client will take further steps and will reinstall the SharePoint Farm with another license.
At the moment I have to write a SharePoint backup and restore document and planning for my clients SharePoint farms. All together, production and non-production, there are 10 SharePoint farms.
At first I thought, this is a very straightforward document about what parts of SharePoint and/or file system to backup and restore. After some search queries on the internet I read that virtualization is also very important. I knew that already off course but I did not know what is or is not supported by Microsoft.
Some quotes on the internet:
“Do not use the Hyper-V snapshot feature on virtual servers that are connected to a SharePoint Products and Technologies server farm. This is because the timer services and the search applications might become unsynchronized during the snapshot process.”
“As a best practice, we recommend that you do not use the snapshot feature on virtual machines in a production environment.”
There are all sorts of SharePoint farms at the client. Complete virtual server farms, combined virtual and physical server farms and complete physical server farms. Considering this, there should also be different recovery scenarios. Maybe I will discuss the different scenarios is another article later on, but for the moment I will give you all the information I have read about virtualization support.
SharePoint farm Backup/Restore with VMware Snapshots: http://social.technet.microsoft.com/Forums/en/sharepoint2010setup/thread/e5abf633-9023-4f24-a707-2680cced28e8
Virtualizing SharePoint Server 2007 Series:
http://blogs.msdn.com/b/uksharepoint/archive/2009/02/26/virtualizing-sharepoint-series-introduction.aspx
Best practices for virtualization (SharePoint Server 2010):
http://technet.microsoft.com/en-us/library/hh295699.aspx
Virtual machine guidance (SharePoint Server 2010):
http://technet.microsoft.com/en-us/library/ff621103.aspx
Update 12/22/2011
Resource Center Virtualization for SharePoint Server 2010:
http://technet.microsoft.com/en-us/sharepoint/ff602849.aspx
Server Virtualization Validation Program:
http://www.windowsservercatalog.com/svvp.aspx?svvppage=svvp.htm
Tags: backup & restore, Virtualization
At the customer I’m working a strange thing happened. In the intranet farm (4 WFE loadbalanced with NLB) on two of the WFE servers going to Site Actions > All Site Settings resulted in the following error:
File not found. at Microsoft.SharePoint.ApplicationRuntime.SPRequestModuleData.GetWebPartPageData(HttpContext context, String path, Boolean throwIfFileNotFound)
at Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.GetVirtualPathProviderCacheKey(String virtualPath)
at Microsoft.SharePoint.ApplicationRuntime.SPVirtualPathProvider.GetCacheKey(String virtualPath)
at Microsoft.SharePoint.Publishing.Internal.CmsVirtualPathProvider.GetCacheKey(String virtualPath)
at System.Web.Compilation.BuildManager.GetCacheKeyFromVirtualPath(VirtualPath virtualPath, Boolean& keyFromVPP)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection)
at System.Web.UI.Page.get_Master()
at System.Web.UI.Page.ApplyMasterPage()
at System.Web.UI.Page.PerformPreInit()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The two WFE servers are also the two oldest WFE servers in the farm. The other two have been added must later to the farm. These last two I added myself (so they are installed correct
). I searched the internet for some solution and found this post at the technet forum:
Here the given solution was to copy the 12hive to the WFE servers with the errors. This solution did not work for me.
Solution
The solution was to compare the web.config files between the older and newer WFE servers. Finally I saw that the following HttpModule that caused all the trouble. By removing this line it all worked:
<HttpModules> <add name="xxxxApplicationMaster" type="xxxx.SharePoint.yyyy.HttpModules.ApplicationMasterModule, xxxx.SharePoint.yyyy.HttpModules, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f7b60d01076d3308" /> </HttpModules>
Tags: error, web.config
Unlike what I’m telling about myself on my About page (this is a no-code blog), I shall write more and more development orientated posts :-). I have tried to deploy a solution with CAS policies directly from Visual Studio 2010 to SharePoint with the new SharePoint Developer Tools.
The Deploy failed with the error “error occurred in deployment step Add Solution: Property set method not found”
Thanks to my colleague Waldek Mastykarz this is resolved. Go to his blog here to see the solution.
Errors in the System log
Log Name: System Source: Service Control Manager Date: 8/31/2011 11:53:35 AM Event ID: 7031 Task Category: None Level: Error Keywords: Classic User: N/A Computer: <servername> Description: The SharePoint 2010 Timer service terminated unexpectedly. It has done this 479 time(s). The following corrective action will be taken in 30000 milliseconds: Restart the service.
Log Name: System Source: Service Control Manager Date: 8/31/2011 11:53:35 AM Event ID: 7024 Task Category: None Level: Error Keywords: Classic User: N/A Computer: <servername> Description: The SharePoint 2010 Timer service terminated with service-specific error 2147500037 (0x80004005).
Both errors appeared every 3 minutes.
Cause
Well in our particular case a developer asked me to change the owstimer.exe.config file (and restart the timer service) to configure a specific timer job.
Solution
In this case, obvious, I think. Replacing the owstimer.exe.config file to its originally settings, which are:
<?xml version=”1.0″ encoding=”utf-8″ ?> <configuration> <runtime> </runtime> </configuration>
Other causes/solutions:
When I searched the internet for solutions I also found this post by Yorick here. Problem was a missing GUID named folder and the solution recreating that folder. Check his blogpost if my solution did not solve anything for you.
Tags: error, SP2010, timer service
Tags: cache, performance, webparts
In my previous post I indicated that the VirtualDirectory Path of the SharePoint Central Administration Web Application in a configuration file was incorrect. I have found the source of this error.
Before I started the SP2010 installation I decided to move the inetpub directory to another drive. I searched for this on the internet and found a script to do this. Unfortunately there was an error in this script which added a second backslash (”\”) to the VirtualDirectory Path.
At first I did not know what caused this error so I searched in the registry. There I found the registry key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp) where IIS stores the location of the WWWROOT. (see below)
The double backslashes where caused by an error in the script that I used to move the inetpub directory from C: to D:. If you also used the moveIIS7root.bat script which I found here, you can download the correct version here. I made changes in lines 46 and 47 (changed %moveto%\inetpub to %moveto%inetpub).
UPDATE August 31, 2011
Also check the Advanced Settings in IIS per website (see below).
Here you also have to change the Physical Path (see below)
First, let me begin with the error that started the idea for this blog post. After running the Configuration Wizard of SharePoint 2010 on a Windows 2008 SP2 server the following error appeared when the Central Admin participate dialog should have appeared:
Server Error in ‘/’ Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /_admin/adminconfigintro.aspx
Version Information: Microsoft .NET Framework Version:2.0.50727.4214; ASP.NET Version:2.0.50727.4209
What have I done to get to this error and resolve it:
With a PowerShell script I installed all prerequisites. Also with PS I installed SharePoint and created the configuration and administration databases and SharePoint Central Administration.
The CA site opened with the error shown above. Several events appeared in the eventlog:
Log Name: Application
Source: COM+ SOAP Services
Event ID: 0
Task Category: None
Level: Warning
Keywords: Classic
User: N/A
Computer: <servername>
Description:
Installation in the global assembly cache failed: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\policy\Policy.11.0.Microsoft.SharePoint.Security.dll
Log Name: Application
Source: SharePoint 2010 Products Configuration Wizard
Event ID: 107
Task Category: None
Level: Warning
Keywords: Classic
User: N/A
Computer: <servername>
Description:
Unable to create a Service Connection Point in the current Active Directory domain. Verify that the SharePoint container exists in the current domain and that you have rights to write to it.
Microsoft.SharePoint.SPException: The object LDAP://CN=Microsoft SharePoint Products,CN=System,DC=xxxx,DC=yyyy,DC=nl doesn’t exist in the directory.
at Microsoft.SharePoint.Administration.SPServiceConnectionPoint.Ensure(String serviceBindingInformation)
at Microsoft.SharePoint.PostSetupConfiguration.CentralAdministrationSiteTask.ProvisionAdminVs()
Solutions:
On this blog http://blogs.technet.com/b/wbaer/archive/2009/12/11/common-microsoft-sharepoint-server-2010-installation-issues-and-resolutions.aspx I found a possible solution for the policy error (issue number 5). The solution would be to delete all files in this directory and run the Wizard again. So I deleted all files.
The possible solution to resolve the Service Connection Point event I found on technet here http://technet.microsoft.com/en-us/library/ff730261.aspx. Because Active Directory is another department I am not able to solve this myself so a call is send to the AD team. But it is only a warning event so it should not be a critical requirement for the installation of SP2010.
The next step was to run the Configuration Wizard again to see if the error was solved. It wasn’t although the policy event had not returned. But now other more serious errors/events showed up:
In the eventlog
Log Name: Application
Source: Microsoft-SharePoint Products-SharePoint Foundation
Event ID: 8306
Task Category: Claims Authentication
Level: Error
User: <domain>\<farm account>
Computer: <servername>
Description:
The description for Event ID 8306 from source Microsoft-SharePoint Products-SharePoint Foundation cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
Could not connect to http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:32843.
The publisher has been disabled and its resource is not avaiable. This usually occurs when the publisher is in the process of being uninstalled or upgraded
In the ULS
Critical An exception occurred when trying to issue security token: Could not connect to http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:32843. .f8f078d7-fcaf-443e-8dc2-32de426a9c78
This blog http://velavans.blogspot.com/2010/06/sharepoint-2010-exception-occurred-when.html tells to start the “Claims to Windows Token Service” but running the Wizard again did not resolve any of the issues.
At this point I took the original error and read it again. The path /_admin/ with file adminconfigintro.aspx is unavailable. So I checked the website in IIS to if the path was there.
Exploring this VirtualDirectory opened the path C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\ADMIN and here the adminconfigintro.aspx file is present (see below)
So, that is strange. Now comes the most absurd part of this story. I just started to explore my inetpub directory, hoping to find some clues to this strange problem.
Finally I ended up in this directory D:\inetpub\temp\appPools (see below) where I found a file called “SharePoint Central Administration v4.config”. This sounded promising. I opened the file in notepad and began scrolling down, just to see what was in the file..
I came to a section where all the VirtualDirectory Paths (see below) are listed for the Admin website. I scanned through this section and saw that the physical path for the root site / was D:\\ with a double backslash. This was not right I thought and changed it to a single backslash and saved the file.
I browsed again to http://<servername>/_admin/adminconfigintro.aspx?scenarioid=adminconfig&welcomestringid=farmconfigurationwizard_welcome
And Praise the Lord…the Central Admin screen appeared
As soon as I got in CA, another file appeared in the map D:\inetpub\temp\appPools. This was the file SecurityTokenServiceApplicationPool.config. And guess what also in this file the root path was D:\\ and I also changed it here.
Now I still have to figure where this setting is originally configured because it seems that it is put in every config file showing up in this directory. If you can help me, please let me know!
Tags: error, installation, SP2010
At my clients SharePoint 2007 farm we have had a very hard to solve error. The error decription in the Application log was:
Failure trying to synch site 3e545b3e-4ddf-4fd2-8c46-00f73fad5864 for ContentDB ecabb92e-caa6-4a37-bebe-cacf64bc31d6 WebApp d2fc32fc-607b-4c5b-902e-b33f58705e74. Het uitzonderingsbericht is: Cannot insert duplicate key row in object ‘dbo.UserMemberships’ with unique index CX_UserMemberships_RecordId_MemberGroupId_SID’. The statement has been terminated.
and the second error (always showing with the first error):
Runtime exception: Cannot insert duplicate key row in object ‘dbo.UserMemberships’ with unique index ‘CX_UserMemberships_RecordId_MemberGroupId_SID’.
The statement has been terminated.
Information:
System.Data.SqlClient.SqlException: Cannot insert duplicate key row in object ‘dbo.UserMemberships’ with unique index ‘CX_UserMemberships_RecordId_MemberGroupId_SID’.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.Office.Server.Data.SqlSession.ExecuteNonQuery(SqlCommand command)
at Microsoft.Office.Server.UserProfiles.WSSSynchSqlSession.SynchExecuteNonQuery(SqlCommand cmd, Boolean throwOnFail)
at Microsoft.Office.Server.UserProfiles.WSSSynchSqlSession.SynchExecuteNonQuery(SqlCommand cmd)
at Microsoft.Office.Server.UserProfiles.SiteSynchronizer.WriteChangeLogConsumed()
at Microsoft.Office.Server.UserProfiles.SiteSynchronizer.Synch()
at Microsoft.Office.Server.Diagnostics.FirstChanceHandler.ExceptionFilter(Boolean fRethrowException, TryBlock tryBlock, FilterBlock filter, CatchBlock catchBlock, FinallyBlock finallyBlock)
Cannot insert duplicate key row in object ‘dbo.UserMemberships’ with unique index ‘CX_UserMemberships_RecordId_MemberGroupId_SID’.
The statement has been terminated.
Both errors were thrown every hour. With the command “stsadm -o sync -listolddatabases” we checked for database GUIDs which references existed but for which the database no longer existed. There were listed 3 database GUIDs that were not synced for months. After running “stsadm -o sync -deleteolddatabases 5″ we thought the errors would be solved. The three GUIDs where not shown anymore but the errors kept appearing in the application log.
My colleague, who’s better with SQL queries, searched the SharePoint db’s for the GUIDs in the error message and found the contentDB GUID in the dbo.SiteSync table in the SSP database. After running the command “stsadm -o sync -deleteolddatabases 0″ the errors were solved.
Tags: error, stsadm, User Profiles
At the moment I am troubleshooting a very slow (response times of 10+ seconds monitored with Fiddler) responding SharePoint 2007 intranet at a customer. At first we thought that the problems where caused by network traffic from SharePoint to SQL because this was routed through the load balancer (Windows 2008 NLB). We configured the route tables on the SharePoint servers but this only caused a slight improvement in performance.
We also saw that object and output cache were both not configured on the site collections. So we also configured both the cache options. Object cache with a size of 200MB per site collection and a refresh time of 600 seconds. Output cache was switched on with the verified cache profile option set to Intranet. Almost immediately after these configurations were done, the helpdesk received lots of phone calls by users. The users reported that it seemed that they were logged on as an other user. After switching off output cache this was solved.
This Technet article also describes the limitations of NLB combined with output caching:
When used with two or more Web servers, output caching might affect consistency. You can configure a cache profile not to check for updates for each request and, for example, configure the profile to ignore changes to the version of the Web page in the output cache until 60 seconds after the original page is updated. If you have two Web servers in your topology, and depending on the load balancer used to route the user’s request, a reader might see inconsistent content if the page is rendered by one server and then a later request is routed to a second server within that 60-second window.
Tags: Infrastructure, performance













