Anybody who has tried to write a RESTful JSON service in WCF will have hit a wall of hurt as soon as they try to do anything beyond returning a simple string. Enums don’t work how you would want (returning a string instead of the integer value), and error messages are still returned as either XML or (even worse) HTML.
There are some partial solutions online, particularly a great starting point provided by Jeroen Hildering on his blog post, however I found there were still a few further issues I wanted to solve.
With the CRM 2015 on-premise update 0.2, Microsoft have introduced a bug with the navigation bar at the top of the page. The steps to reproduce it are:
- Hover over the top-level node, e.g. Sales, to bring up the second level navigation.
- Within the second level navigation, click on the downward pointing chevron next to an item, for example “Contacts”, to reveal the third level navigation showing the recently viewed items.
- Select one of the recent items.
- After the page has loaded, repeat from step 1.
With huge thanks to Guido Preite’s blog post on the problem, I have developed a patch for this, and I thought I would share.
So I have recently set up my own Windows Server 2012 box to replace my old NAS. There was nothing wrong with the old box particularly, I just wanted a bit more control over it all, and I wanted to be able to run Plex, which the old box just wasn’t powerful enough to handle. One of the features of the NAS box was that it has a BitTorrent client, accessible via a web browser, and I was keen to replicate this functionality on my new set up.
The popular µTorrent client seemed like a good solution, as it includes a web-based user interface out of the box. Unfortunately, there is no built-in way to get it to run without being actually logged into the server at the time. The usual trick of setting up a scheduled task to run at start up unfortunately didn’t seem to work, and all of the guidance I could find on the internet suggested that I use the Windows Server 2003 Resource Kit to create a service, which unfortunately seems to be incompatible with Windows Server 2012!
So, in the end I gave in and came up with my own solution, and I thought I would write about it here in case it is of any use to anyone else trying to achieve the same thing.