On a recent project, we had a requirement to tear up /down the Episerver CMS database fairly frequently. On a usual project, one of the first tasks I'd normally add to the backlog and I recommend that you do, is to get rid of any manual steps that your workflow might require. If you're quick on time, I've even written a little app that will do most of the hard work for you. If you want to learn more about that then I recommend you have a look at this article, A C# App That Will Wipe Your Eiiserver Database
On this particular project, the website in question was an old legacy site built by a different company. First, the old company's code base wasn't written very well, it wasn't testable and wasn't built with a tear-up/tear-down mindset. I didn't work at the old client, so I can't comment on the reasons etc.. but our job was to get a website running based on this limitation.
The timescales on the project were very tight, so much so that the time wasn't available for the company to do all the automation stuff fully before the project went live.
For this reason, I've found myself for the first time in many years, manually dropping and repopulating my Episerver websites sometimes on a nearly daily basis on various servers. As with any manual deployment process being performed in different environments, with a complex commerce website that was originally built without the thought of tearing up/tearing down, mistakes creep in etc.. and errors occur. The aim of this post is to hopefully help people out there save some time.
Before I kick off with the code, first I'd recommend that you go to confluence and write a step-by-step guide of every manual thing you need to do, in order to deploy your website, re-populate it with data etc..
If you haven't read the Phoenix project I suggest you do that, as in there, there's an easy to understand explanation about why getting visibility on processes:
1. It allows other developers to replicate the tasks with fewer errors
2. It gives the business the greater visibility as to where your time is going and gives you better justifications for spending time automating things.
In my situation, the deployment process was 16 steps and if not followed correctly, then strange errors occurred, which I'll cover next.
Before I begin going into this one, let me say this website was a multi-language website. For people using Episerver for a while, you might think that the error is down to missing media in the blog storage, but it isn't. This error means EPiserver can't find a start page. Go to your site definition folder and ensure that the start page is set.
A 500 type Error Is Usually A Configuration Issue. In these instances, nothing will log within the Epi-logs. 500 logs can be found in the Windows application logs. 90% of the time these errors mean there's something wrong with your web.config
This usually happens the first time you try to install a website on a new server. If this is you, then I'd recommend reading, Getting A 503 Sevice Unavailable Error When My Episerver Start Page Loads
This is usually down to the site definitions not being set-up correctly, or, in a multi-language website, your culture hasn't been set. In the site definition:
Ensure that the hostname you are using to access your Episerver website is mapped in the site definitions AND the correct language has been set (if applicable)
BONUS TIP: If your site settings look ok, but still don't work, delete and re-create. On a recent project, the website's site definitions were being built up in code (see here to do that) and looked correct and set-up as expected, although the site didn't load. Someone on the team deleted the site definitions which made the site work again. So my tip is, if you think the issue is down to your site definitions, don't be afraid to delete and re-create it as a test.
If you're reading this and your page still isn't loading, then it's likely a code based issue. If you're running out of ideas for things to try, then here are a few points for consideration:
Most Episerver websites are quick and easy to get up and running, some aren't. If you're struggling to set-up your website, I suggest you invest the time automating it, whether it be through a build server, a custom exe you run locally to set everything up, or you do it all on the project's post-build action.
If your page doesn't load properly, aside from environment configuration on a new server, the site definitions and language are the most common issues. If that doesn't fail, hopefully, some of the pointers above might help, if not... good luck!
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge