I've had some difficulty finding a concise description of performing an upgrade from DNN 3.1.1 to DNN 4.3.3
I use a hosting service which provides a "button" to Install DNN 4.3.3 on a hosted website. No further description of the procedure or pitfalls were described by the hosting service and there are scant few search hits on DNN 3.1.1 to DNN 4.3.3 upgrades.
Here's my synopsis of the steps I took to do said upgrade. It seems to be done and working.
I have installed two or three DNN modules on my sites. I do not develop modules yet and don't believe there is any source in my sites. Apparently, there are conditions under which upgrades of DNN become "non-trivial"... something about source DNN modules having to provide their own upgrade path (for database layer, etc).
Step 0:
Lock out website traffic
Step 1:
Backup the files and directories under the website directory. I used my hosting service information to ftp over there. Careful to ensure web.config is included as it contains a) cryptographic information which seals each site and b) data provider information (ie., connection info to db server).
Step 2:
Backup the database. Again, my vendor hosting service has the SQL Server application to provide such file.
Step 3:
Click the install 4.3.3 button at the hosting service for the website in progress. Visit the site to watch it upgrade. If it bombs (like mine did twice), revisit the site again and it will pick up where it left off (thankfully).
Step 4:
After the install completes and you see your website art again, stop the website using the hosting control panel.
FTP new 4.3.3 web.config file down to compare with the old 3.1.1 web.config file. My hosting service automatically adjusts the data provider info (1.b) but leaves the crypto stuff alone. So at this stage logins dont work!
The crypto stuff looks like this under 3.1.1
<appSettings>
<add key="SiteSqlServer" value="server=...;database=...;uid=...;pwd=...;" />
<add key="MachineValidationKey" value="some long hex string labeled here as A" />
<add key="MachineDecryptionKey" value="some slightly longer hex string labeled B" />
<add key="MachineValidationMode" value="SHA1" />
...
<add key="InstallationDate" value="9/6/2005" />
</appSettings>
<system.web>
...
</system.web>
... and like this in the freshly installed 4.3.3 web.config file
<appSettings>
<add key="SiteSqlServer" value="server=...;database=...;uid=...;pwd=...;" />
...
</appSettings>
<system.web>
<machineKey
validationKey="installed hex string C"
decryptionKey="longer installed hex string D"
decryption="3DES"
validation="SHA1"/>
...
</system.web>
Step 5:
Copy old hex string A over the place of new hex string C and string B onto string D.
Save the new web.config file and FTP it back to the website directory from whence it came.
Restart website from hosting control panel. If successful, you will not need to use your backup files at all except for tweaking the new web.config file.
In summary, the <machineKey> tag's home has moved from <appSettings> to <system.web> somewhere between 3.1.1 and 4.3.3. There's a whole lot of husk in the searched files. I hope this post is useful fodder for some as I spent a few hours on researching the husk.
Over and out.