Archive for the ‘Uncategorized’ Category

SharePoint 2013 Cannot Install – This product requirements Microsoft .Net Framework 4.5

September 4, 2016

I have been building a new SharePoint 2013 farm for a client and was unable to install SharePoint 2013 binaries due to the following error:

This product requirements Microsoft .Net Framework 4.5

.NET 4.5 was installed, but it turns out that a recent patch had also deployed .NET 4.6.1 as well. The SharePoint 2013 setup doesn’t pick that up and fails with the message above.

Resolution: uninstall .NET 4.6.x via Add/Remove Programs, View installed updates, and located the KB reference for the version of the .Net Framework you want to remove. In my case it was KB3102467.

After uninstalling I could continue with the install.



HOWTO Debug SharePoint 2013 REST Calls in Workflows

August 21, 2015

I am creating SharePoint 2013 workflows using SharePoint Designer 2013 that makes web service calls to the various SharePoint 2013 REST APIs.

The REST URL format is slightly confusing for new users, so I am documenting how I uncovered various methods here and what you can do to debug REST calls in SharePoint 2013. My principal tool for debugging is the Fiddler web debugging tool.

Creating a Request in Fiddler

I am using the Composer function to create URLs to call REST APIs in SharePoint 2013. This allows me to set the HTTP method (GET, POST, UPDATE, MERGE, etc), the URL, and watch the response from the server.

Testing the URL Path

REST URL requests are very specific in the path for the requrement. Here is an example:

HTTP GET – http://myurl/sites/abc/_api/web/

This REST url returns the properties of the web located at http://myurl/sites/abc/, and also provides a list of the next level objects available to call via the API. You can get the Current User information via the REST api by using:

HTTP GET – http://myurl/sites/abc/_api/web/currentuser

This should return details about the Current User as per the user profile in your SharePoint environment.

Here is another example for the GetFileByServerRelativeUrl:

HTTP GET – http://myurl/sites/abc/_api/web/GetFileByServerRelativeUrl(‘/sites/abc/Library1/my.docx’)

This REST url has a number of different elements.

  1. The site is used to access the web api (_api/web)
  2. The api method (GetFileByServerRelativeUrl) is used to access an SPFile
  3. The server relative url is required for this particular method call

Getting the Context Info

The Context Info is a mechanism for SharePoint to ensure users aren’t tricking into calling SharePoint without their knowledge. You can use Fiddler again to view your context info:

HTTP POST – http://myurl/sites/_api/contextinfo

Your return result will include the context element d:FormDigestValue, and this value can then be passed in via headers to web service calls using the header “X-RequestDigest”.

Common Errors

HTTP/1.1 403 Forbidden

The REST API call may not have the correct X-RequestDigest (see previous Getting the Context Info section). You can view more detail via Fiddler when you click on the “TextView” tab. Look for “The security validation for this page is invalid. Click Back in your web browser, refresh the page, and try your operation again.”

HTTP/1.1 405 Method Not Allowed

The REST API call accepts particular HTTP method(s) (like GET, POST, UPDATE etc). Try changing the HTTP method (eg from GET to POST).



Records Management and Sentencing

June 8, 2015

Who owns a record? Who has the authority to sentence a record according to Australian records management regulations?

Speed up Remote Desktop by Disabling Mouse Shadow

August 10, 2014

There is nothing more aggravating than slow remote desktop sessions, particularly draggy slow mouse performance! Easy fix – in your Mouse options on the remote desktop session, disable mouse shadows. Instant fast mouse again!

Reason: mouse shadows are calculated based on the position of the mouse. Your remote desktop sessions has to constantly send mouse position updates to your server, which calculates the shadows position, and then returns the results. Turning this off results in no requirement to send mouse position to the server, so only mouse click-drag events are required rather than constant position of the mouse on the remote desktop screen.

Equivalent aspnet_regiis for Windows Server 2012

March 31, 2014

Found this out when my AutoSPDeploy installation kept failing while registering .NET 4.0 with IIS:

dism /online /enable-feature /featurename:IIS-ASPNET45 /all

The “/all” switch makes sure that prereqs are also installed.

Installing AppFabric 1.1 on Windows Server 2012 – 1603 installation error

March 9, 2014

I had a number of issues installing AppFabric in my test environment. I originally had issues when adding AppFabric to my SharePoint 2013 environment, and so I decided to create a dedicated AppFabric server and get that integrated instead. Sounded reasonable at the time anyway.

I couldn’t seem to get past the 1603 installation error. It would continually appear and no matter how many reboots and attempted installs of AppFabric I couldn’t get it past that point. So I started diving into MSI log files to find out what the issue was.

Issue 1: IIS not installed

Ooops. The hint for this one was:

9/03/2014 8:28:46 AM EXEPATH=c:\Windows\system32\\icacls.exe PARAMS=c:\Windows\SysWOW64\\inetsrv\config /grant AS_Observers:(OI)(CI)(R) LOGFILE=C:\Users\installer\AppData\Local\Temp\AppServerSetup1_1_CustomActions(2014-03-09 08-28-25).log
Error: c:\Windows\SysWOW64\\inetsrv\config: The system cannot find the file specified.
Output: Successfully processed 0 files; Failed processing 1 files

The folder C:\Windows\SysWOW64\inetsrv\config doesn’t exist unless IIS is installed.

Fix: Install IIS.

Issue 2: Installer doesn’t handle AS_Observers group

This group is created during the installation process, but if the installation fails for any reason, the group stays there. Subsequent installs flag this as an error.

Fix: delete the local group AS_Observers after a failed install and before you run the installation again.

Issue 3: PSModulePath problem

The installer fails if the environment variable PSModulePath has extra quotation marks at the end of the variable. To resolve this issue, edit the PSModulePath environment variable manually via:

Control Panel->System->Advanced System Settings->Advanced tab->Environment Variables->system variables.

There is an ending quotation mark there, delete the quotation mark and re-run the setup.

Post Installation Steps

These are documented on MSDN but the main one I needed for caching was to configure an AppFabric Cache share.

Addition Issues

Some other things to check are:

  1. Windows Firewall settings. AppFabric uses default ports of 22233 and up for communication, and these need to be enabled for successful communication
  2. Remote Service Management service. Configuring integration between SharePoint and AppFabric needs to access the remote registry for configuration settings. This service must be started on the AppFabric server.

Full Installation Procedure

Fixing SharePoint 2013: Sideloading of apps is not enabled on this site

December 7, 2013

I am using Visual Studio 2012 to develop SharePoint Apps for my on-premise SharePoint 2013 environment. I wanted to set up a simple dev environment for one of my host-header site collections, but when I tried to deploy my SharePoint App I got the error:

Sideloading of apps is not enabled on this site

The feature required to enable sideloading is as follows:

DisplayName: EnableAppSideLoading

Id: ae3a1339-61f5-4f8f-81a7-abd2da956a7d

CompatibilityLevel: 15

To enable sideloading, use the following PowerShell commands:

$site = Get-SPSite ""

$sideLoadingId = new-object System.Guid "ae3a1339-61f5-4f8f-81a7-abd2da956a7d"


Manually Installing Windows AppFabric on Windows Server 2012 for SharePoint Server 2013

September 25, 2013

Import-CSV Error : Cannot process argument because the “name” is invalid

July 23, 2013

I got this error from a CSV file that I had exported from Excel. The file was correct, Excel looked good, but there were extra columns on the right-hand side of the Excel data. I opened up Excel, deleted the extra columns, re-exported to Tab text file, and problem gone.

The underlying issue is that the Column headers are blank. Import-CSV does not like this, hence the invalid “name” notification.

HOWTO Stop or Cancel a Running Timer Job in SharePoint 2010

May 17, 2012

I had an issue with several of my FAST for SharePoint 2010 timer jobs not processing properly, they were in the “Running” stage but never actually finished. The jobs were:

Crawl Log Report for Search Application FASTConnectorSSA (Web server 1)

Crawl Log Cleanup for Search Application FASTConnectorSSA (Web server 1)

Crawl Log Cleanup for Search Application FASTQuerySSA (Web server 2)

Crawl Log Report for Search Application FASTQuerySSA (Web server 2)

These timer jobs process log files from the FAST Search servers and display them on the Search Farm pages for content source details, crawl history, etc.

To cancel running services you must restart the SharePoint Timer service on all servers that the jobs are running on. In my example above, I had to restart the timer service on “Web server 1” and “Web server 2” to get rid of their jobs. Central admin jobs list then showed they had disappeared.

If there is an issue with the Job itself (i.e. it is a custom job not behaving) then you should Disable the job definition first, then restart the SharePoint Timer servers. That will make sure the job doesn’t start running again according to its schedule.