August 2014 archive

Simple steps to set up MSDeploy 3.5 on server

These steps were used to get MSDeploy 3.5 set up on Windows Server 2008 R2:

  1. Hit Start and search for ‘Turn Windows features on or off’
  2. Select Roles -> Web Server (IIS) in the left menu and then right click and select ‘Add Role services’
  3. Then in popup check the ‘Management Service’ box under Management Tools
  4. Go to Management Service in IIS after clicking on the computer name node in the left column
  5. Enable it and assign a self signed cert. I selected Windows or IIS manager credentials and left the default port
  6. Install Web Platform Installer
  7. Optional: Install web deployment tool 2.1
  8. Install Web Deploy 3.5
  9. Create a user called msdeploy (or whatever you set in your config) and make it an admin.
  10. Try going to https://SERVERIP:8172/msdeploy.axd in your browser. E.g.
  11. You may need to open up that port in the firewall.
  12. Login using user above and you should be directed to blank page if the login works – still a 404. Otherwise you will get a 401 if you cancel out of login box
  13. You will need to give the msdeploy user file system access rights to the folder that you want to deploy to. This can be done by following the steps under ‘Configuring a deployment user’ heading on this post:
  14. You could need to make sure that the WMSvc has the privileges to use the runCommand provider. The correct way to do this give the msdeploy user “replace a process level token” rights using secpol.msc (local policies -> User Rights Management) –
  15. If that doesn’t work then we should override the privileges for WMSvc (Web Management Service) service to execute runCommand successfully. (See the ‘Troublehunting’ heading on this page
  16. Make sure that the “Web Management Service” and “Web Deployment Agent Service” are set to automatic start up

One useful thing to do if you are troubleshooting is running this in the console (vs a batch file) and you’ll get a stack trace.

Useful blog posts that I used as reference:

Sitecore language url embedding

There is a new setting in 6.6 that changes the behaviour of languageEmbedding=never in the linkManager code:

This was causing issues post upgrade since we relied on the presence of /en to define different site entries.

Global variables in TypeScript

A caveat for when you’re declaring global variables (in this case it was moment JS) – if you declare a global you’re defining elsewhere (e.g. in a library) at the top of a file like this:

var moment: MomentStatic;

The compiler etc won’t complain (it’s a valid use case) but it can break your code in IE8 and below (it adds an enumerable but undefined property to window…). Make sure to use declare var:

declare var moment: MomentStatic;

This will remove the “var moment;” from the compiled JavaScript and thus avoid declaring a duplicate variable

Check if a url / asset is cached by Akamai

Akamai can appear transparent over the top of requests – how can you check if pages / urls are cached?

You need to install cUrl ( and then run: