Friday, April 27, 2012

One problem with site creation in Sharepoint with enabled RBS

Recently I faced with the following issue: when created site collection view PowerShell I got the following error:

New-SPSite : Provisioning did not succeed. Details: The site template was not provisioned successfully. Delete this site collection in Central Administration, and then create a new site collection. OriginalException: The URL '_catalogs/masterpage/VariationRootPageLayout.aspx' is invalid.  It may refer to a nonexistent file or folder, or refer to a valid file or folder that is not in the current Web.

Page layout VariationRootPageLayout.aspx existed and was correct on the file system (14/Template/Features/PublishingResources). I didn’t find useful comments in the web and started to investigate issue in event log and Sharepoint log. One error in event log, which occurred before error shown above, attracted my attention:

Exception: Microsoft.Data.SqlRemoteBlobs.BlobStoreException: There was a generic database error. For more information, see the included exception. ---> System.Data.SqlClient.SqlException: FILESTREAM feature doesn't have file system access enabled.
   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.Data.BlobStores.FilestreamBlobStore.FilestreamStoreLibraryBase.Initialize(ConfigItemList commonConfiguration, ConfigItemList coreConfiguration, ConfigItemList extendedConfiguration, BlobStoreCredentials[] credentials)
   --- End of inner exception stack trace ---
   at Microsoft.Data.BlobStores.FilestreamBlobStore.FilestreamStoreLibraryBase.Initialize(ConfigItemList commonConfiguration, ConfigItemList coreConfiguration, ConfigItemList extendedConfiguration, BlobStoreCredentials[] credentials)
   at Microsoft.Data.BlobStores.BlobStore.InitializeInternal(Request request)
BlobStoreException Code: OperationFailedAuthoritative

Some time ago I enabled RBS (Remote BLOB Storage) for the database server which runs Sharepoint databases. And error shown above was somehow related with it. Although it didn’t have direct relation with first error during creation of site collection, I decided to fix that error first.

In order to fix it first of all ensure that you went through all steps described in the following link: Install and configure RBS. When you will enable FILESTREAM in Sql Server Configuration manager, ensure that on FILESTREAM tab all checkboxes are set as shown on the following picture:

image

In my case 2 checkboxes were not selected and even if I performed all other actions which are described in the link above, it caused error during site collection creation. After I selected all checkboxes in this table, restarted Sql Server instance and tried to run script again, site collection was created successfully. May be this information will be useful for someone who will face with similar problem.

No comments:

Post a Comment