I was upgrading my server to Windows 2016( doubled the ram while i was at it too ) and in the process moving/upgrading all the websites/domains this past weekend. One of those is of course this blog.
So apparently, i was on a very old version. I had been updating about every year or so, but i was 6 versions behind ( version 2.6 ). So i decided that i would step one version to the next until i hit version 3.0, which had a wonderful auto-update process which could also be launched manually. The process to upgrade usually involves zipping the current directory, stopping the site, unzipping the new version into the existing directory and then copying a few files over to the new site folder. You could also create a new folder and repoint the existing site to the new folder( few ways to cut this ).
Well, my usual methods were not having any luck, even going to version 2.7 wouldnt work. I then tried to go directly to 2.8, then 2.9 directly and finally tried 3.1 directly( go for the gold sorta speak ). None of these worked. The site would not load. So finally i setup a test site, created a new database and tried from scratch to see if it was the new web server setup ( using sql 2016 as well ). The new fresh site started up no issue. At this point, i figured it was a database issue, IE: some site config option was killing it.
I compared the two databases( the main settings table to be specific ) and the only thing i could really find ( besides the column order, most likely due to my continuous upgrading since version 1.3 ) was the template setting. So being that i dont really care about the templates and the fact that the upgrade noted some things, including widgets may not transfer well, I reset the template name entry. They were using one called "standard" in the fresh test site, so i updated the entry to match in the live site. I also created another folder and dumped in the new version without copying any files over to it. You do have to adjust the database connection string, but that's the only modification i made to the files. After making these changes, the blog came online and i was able to browse it!
At this point, it was time for a new template selection since i had to blow away the previous one. Being that the previous one was breaking the site, i decided not to take a chance reappying it. I found a few templates that came close to providing the look/feel i wanted and then landed on this one. Luckily, the templates pull like Wordpress ones do ( plugins as well ), so it was quite easy to select and change. Unfortunately, i had to do a little manual editing to the template files to make some personalization changes, but nothing too serious.
Last thing to do was apply a recent patch. Luckily the new version has a little button you press that does it all for you now ( this was a pain in the past ) and again, much like wordpress updates. Unfortunately, when i tried to apply the patch, it failed. Turns out that i needed to add full control permissions to the blog folder for the application pool to allow it to upgrade the folder contents. After applying the permissions change, the update functioned without a problem!
As far as the new version goes, i love the new administration area. Its a design step above the previous version and seems more fluid. I am still getting used to where things are at, but its not a monolithic interface, so its not a difficult challenge. My easy peasy comment bot blocker still works, which was the only thing i was worried about when upgrading. The great part about these CMS site(something i used to build manually with SQL/access backends, control panels and all ) is that you can reset it usually without losing any data. Plus backups are easy, quick folder copy and database dump using sql agent, and you are in business. Of course, you really only need the database.
For the permissions issue: Simply edit the permissions on the BlogEngine website folder, add the app pool service name with full control. I used the search function in the permissions window and you just look for "APPPOOL\<poolname>" or "APPPOOL\BlogEnginePool" ( basically whatever you named the application pool in IIS for the Blog Engine site. I may have been able to get away with less permissions, but i wont be able to test that until the next patch is out.
If the BlogEngine Devs ever read this page, may i suggest forcing people back to a standard template in the database or perhaps giving folks to the option to reset it as a precaution? Also, the mssql upgrade scripts seem a little inconsistent between version upgrades. It appears you are reigning that in, but a little more consistency there might avoid a little confusion. I would say the consistency would apply to the upgrade txt file in there, having it state per version upgrade what to do, or what order to step in. The other option might be to tell folks to do what i did above if they want to reset their configuration to get their site back online. These are all minor issues compared to the functionality provided by BlogEngine though, i would recommend it to anyone who wanted an IIS/MSSQL blog ( A+ ).