PRC Server Unavailable Error

If your event log shows errors relating to the RPC Server being unavailable (COM Exception 0x800706BA, Event ID 3), like the one below.


Then you most likely need to start the remote procedure call service. Start the services.msc from the Start -> Run menu

Locate the Remote Procedure Call (RPC) services and

1. Make sure that they can both start automatic and

2.Make sure that they are running. (You could also try to restart the services if they are running and you still get the same error).

Starting/restarting these should solve the problem.

Could not find stored procedure ‘dbo.Search_GetRecentStats’

This error is generally due to the fact that the Search service application cannot write to the usage and health database.

Event ID: 6398

The Execute method of job definition Microsoft.Office.Server.Search.Monitoring.HealthStatUpdateJobDefinition (ID 9cb6be54-0384-4c6e-abfc-c2f25621a3ed) threw an exception. More information is included below.

Could not find stored procedure ‘dbo.Search_GetRecentStats’.

Event ID: 5586

Unknown SQL Exception 2812 occurred. Additional error information from SQL Server is included below.

Could not find stored procedure ‘dbo.Search_GetRecentStats’.

This is most likely either because the usage and health service does not have Health Data collection enabled. Go to central admin and under monitoring select Configure usage and health data collection. Select both the Enable usage data collection and the Enable health data collection.

Then perform an IISReset and restart the SPTimerV4 service.

(If these are already on, you need to disable them first then enable them again. Make sure to perform an IISReset and restart the SPTimerV4 service in between.)

If you have problem to disable the “Enable health data collection” you will have to stop some timer jobs:

Go to “monitoring” and to “Configure usage and health data collection”. Go to the “enable health data collection” and click on “health logging schedule”

Disable the following timer jobs (Diagnostics Data Provider: Performance Counters – Database Servers and UserProfileServices- User Profile to SharePoint Quick Syncronization):

Go to “monitoring” and  “Review job definitions”

Disable this timer job (Health Staticsics Updaing):

Now you should be able to disable the  “Enable health data collection”

The EXECUTE permission was denied on the object ‘proc_GetProductVersions’, database ‘SharePoint_Config’, schema ‘dbo’.

This error appears because the stored procedure for Proc_GetProductVersions does not have the correct permissions.

  1. Navigate to the SQL server
  2. Expand the Database tree
  3. Expand the SharePoint Config database
  4. Select Programmability
  5. Select Stored Procedures
  6. Find dbo.proc_GetProductVersions
  7. Right click the stored procedure and select properties
  8. Select permissions
  9. Add [WSS_Content_Application_Pools] and give the account execute permissions.
  10. No restart of any services needed.

How to map a SharePoint directory as a Network Folder in Windows 7

In order to map a SharePoint directory as a network drive in windows 7 you need to do the following:

Open “My Computer” and right click next to your HDD and select Add a network location


Select “Choose a custom network connection”


Navigate to the document library in SharePoint that you want to map and copy its url (make sure to remove any .aspx extension at the end of the url)

You should have something similar to:

from this remove everything after Documents (or the name of your library)

Copy that address to your “Add network location” wizard


Give the mapping a name


Press Next and you are finished.

WFE Caching (BLOB)

Blob Cache (Part I)

In SharePoint Server 2010 you can enable BLOB cache. BLOB cache is a disk-based caching which will increase browser performance and reduce database loads. SharePoint will load the files directly from its harddrive rather than performing an expensive SQL query to retrieve the data from the SQL server.

 When a site is rendered the first time all files associated with that site will be copied to the local harddrive and stored in a cache. All request for this website after the initial request will be retrieved directly from the harddrive instead of the SQL server.


In order to enable the BLOB cache for a web application we need to do the following:

  • Open the web.config file for the web application on which you want to enable BLOB caching
  • Find the line starting with “<BlobCache location=”

The line will look something like this :

<BlobCache location=”C:BlobCache” path=”.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|
mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$” maxSize=”10″ enabled=”true” />

  • First we need to ensure is that enabled is set to true  (enabled=”true”). This enables the functionality.
  • Then we need to define where to store the cache which is determined by the location parameter ( location=”C:BlobCache”) in this example the cache will be stored at on the C: partition. It is generally not recomended to store the blob cache on the c: partition where Windows is installed. If possible the cache should be put on a SSD or 15000rpm disk.
  • We then set the maximum size for the BLOB cache with the parameter maxSize  (maxSize=”10″ ). The default size is 10 GB
  • Lastly we can alter the file extensions which are to be stored in the cache by adding their exstensions to the path variable (path=”.(gif|jpg|…)

Authentication Performance

Authentication performance

If your IIS has to service a great number of request simultaniously and the users are getting a slow rendering experience it could be because of the authentication method that you are using.
NTLM is good for small and medium sized sites, Kerberos is more useful for site with a higher workload where a large number of requests are processed simultanously.

In NTLM the requests are not cached on the client machine meaning that every request needs to connect to the domain controller every time an object is accessed. This can prove to be a real stain on the overall performance if too many requests need to be made (meaning a lot of users are connecting)

Kerberos on the other hand can cache its requests meaning that the users only needs to communicated with the domain controller once, after that all subsequential requests are made using the cached credentials. This can improve the performance of the site dramatically.