Upgrading Sitefinity to 14.0 was straight forward but a dumb mistake had me giving myself an uppercut. Despite my shame and for your convenience I will write out the steps I went through which may help you when trying to find live site issues.
There is a lot of cool things about Sitefinity 14.0 and that's from me with my developer hat on. My first favourite is the support for webp image formats along with the <picture> element in the image widget. The second would be the work done around the web services.
I was looking at a post to write about this stuff but the first thing to do, in my opinion, was to upgrade a site once the official release was out and then look to implement things.
All went well until it didn't
I downloaded the latest SF CLI and run that against my project, (read about the CLI in another post). Locally all went fine and I scheduled a time to push it live.
The time came, I pushed it live and BOOM, KA-POW! An instant 500 error.
No biggie I thought, a good practice with Azure is to restart the web app just in case. But the same issue, so I turned off custom errors in my web config to get a better view.
I should mention this is my hobby site. It runs in an Azure Webapp and I publish to it directly from Visual Studio. So normal production recommendations are not paid for with this site.
The unhelpful details were - 500 error with a code of 0x000000 complaining about the ExtenionlessUrl Handler and the Sitefinity module. What????
Next step I checked my Application Insights log where I am pushing my exception events to. Several thread abort issues and an exception on the 'upgrade mode'. Something to go on I guess. I turned off using Application Insights and got logs being written to the file system. The file size of the logs was growing but when I downloaded them they were close to empty. Sitefinity was not flushing the data to the file. This happens on Azure which is why I prefer App insights.
The error logs did mention 'upgrade mode'. Perhaps something had wrong during the DB upgrade. I exported the DB and hooked it up locally. No issues, the site started and kicked into upgrading.
Next step - I took the upgrade DB and replaced the production with it. Still, the issue continued.
I really needed to see what was appearing in those file logs so I started repeating requests to the site to cause errors to be logged and eventually the file grew over 1MB which meant Sitefinity flushed the content and started a new file. I downloaded these files and read lots of Gobbly Gook about Open Access providers failing to init and issues with the deployment files. Leads but still no idea.
I then logged a ticket with Sitefinity Support.
And here it is
This has been three hours now. Luckily I get a real work call to take my mind away for an hour. Then as I am making my coffee I think about the old days when things like this happened and I recall something. I go and check my bin folder and notice that I have a different number of dlls than I do locally.
I stop the site, delete all the dlls and upload a fresh set, start the site and up it comes.
Locally when I do the upgrade I always 'Clean the Solution' as one of my steps. This removes old dlls and ensures just the project ones are in there. But with this deployment, it doesn't delete excess files. In my standard production releases, I do this.
So five hours later my site is up and I give myself one big uppercut to remind me of a lesson that I have already learned.
Thanks for reading and feel free to comment - Darrin Robertson