There are occasions where a DotNetNuke site displays the "under construction" page and it is not clear why. There are only three specific cases where the under construction page is displayed::
- The system thinks it needs to perform an installation and the AutoUpgrade setting in web.config is set to false.
- The system thinks it needs to perform a system upgrade and the AutoUpgrade setting in web.config is set to false.
- The system gets an error when trying to determine if the database version matches the DotNetNuke assembly version.
In the first two of these the issue is expected i.e. the source (including dotnetnuke.dll) has been updated, but the database version is an early release. However in these two cases, the site owner has chosen to not allow automatic upgrading of the database (typically to ensure that all the files were transferred before an upgrade begins). To force the upgrade, either update the value of AutoUpgrade to true in the web.config, or call the install.aspx
with the relevant mode (install or upgrade)
In the third of these cases, there is the display of the page is triggered by the system having difficulty connecting to the db. Whilst this can happen when the database server is offline or the database has been deleted, those errors simply cause the site to fail to load. However, in one special case the under construction page will display.
The special case is when the host restarts the SQL service while the site is active. Restarting the SQL service while the site is active will break the connection to the database and display the under construction page. When this happens the site is not properly shutdown. The site is unloaded from the server memory but it doesn't know to try and reconnect because it was not shut down and the app pool is not recycled.To fix this error recycle the app pool in IIS or overwrite the web.config file with a current web.config backup from your site or simply touch the web.config.
Johnathan Sheely has developed a custom module that will continuously monitor the connection to the database and if lost will properly shut down the application. Shutting the application down properly will allow the site to be restarted once the connection is re-established. This will all happen automatically and you will receive an email when there is an occurrence. Jonathan has made the database monitor module available on CodePlex.
You can download the module here