Shooting yourself in the foot with a config patch – redux

Sitecore’s config patch files are great. But sadly it’s entirely possible to cause yourself headaches with them. I’ve written before about how it’s possible that small typos can cause big issues. In that style, a colleage brought an issue to me recently which was an interesting new variation on this fun… Continue reading


Now is the time to seriously consider your Content Security Policy

News stories about hacking and malware are depressingly common these days. Here in the UK I think we’ve not really dealt with all the fall-out from last May when parts of our health service (along with many other businesses) were hit by the “Wannacry” ransomware worm. Yet another security incident happened the other day which will get less press coverage (since it’s nowhere near as dramatic) but has bigger implications for us as web develelopers… Continue reading

Spotting common challenges when you’re doing performance tracing

I find myself doing quite a lot of work on performance for Sitecore websites at the moment. Whenever I do a similar job for a group of clients, I start to spot patterns in the sites I’m working on – and it struck me that there are some common performance issues that can be spotted just from the overview graphs you see when you collect trace data.

So to try and help you all improve the sites you ship, here are three that I’ve come across in a few projects recently: Continue reading

A hack for role-based config in v8 deployments

It’s a pretty common requirement that deploying instances of Sitecore will require slightly different configuration on different servers. Different roles, like content management and content deployment, will require different settings and features to work. So it’s not surprising that there are a variety of approaches to how you manage this configuration in your projects.

In the past I’ve often made use of separate config files, where you have a file for “config changes needed on all servers” and then further files for “config changes needed for CM servers”, and even down to the level of “config changes needed on server CD01” if necessary. This works fine if your deployment process understands which files should go on which servers.

Recently, however, Sitecore have started to offer a “role based configuration” approach in the configuration of v9 – so you can deploy a single config file and the server can pick and choose sections of its configuration based on what role it is performing. But back in the real world, most of us are still supporting V8 (and older) sites, so is it possible for them to adopt something similar to this idea? Here’s one approach that achieves something similar: Continue reading

Issues with Invoke-Webrequest and IE on servers

I’ve been doing some work with Release Management in Visual Studio Online recently. Overall it’s been a pretty positive experience, but there was one face-palm inducing moment I came across which needs writing down so I don’t fall into the same trap next time I have to do this. When you’re working with local release agents, you mustn’t forget the security settings that your agent’s server is configured with… Continue reading

Embedding resources in PowerShell scripts

A challenge I’ve come across a number of times while working with PowerShell scripts for Sitecore is that scripts sometimes have other files they depend on. Making sure that your scripts and their dependencies stay in sync can be a challenge at times, especally when scripts get reused across an organisation. So what approaches can you use for this? Continue reading

If you have to use Ninject with Solr…

My first time having to configure Solr for Sitecore recently taught me a variety of new things. (I know – how have I managed to avoid it this long?) Most of the basics of the setup have been well documented elsewhere, so I won’t repeat any of that. However setting up the site to use the Ninject DI container wasn’t as smooth as the documentation suggested, so here are some notes on the issues I hit in case you find yourself stuck: Continue reading