データベースに接続できない場合、Umbraco はこのページを表示します。
古いバージョンの Umbraco では、この問題が発生すると、再公開されるまでサイトはこの状態のままでした。これは修正されたようです (どのバージョンからかはわかりません)。これに悩まされていて、アップグレードがオプションではない場合、回避策は次のコードを /config/splashes/noNodes.aspx の先頭に配置することです。
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Server.ScriptTimeout = 100000;
var cacheFile = IOHelper.MapPath("/App_Data/umbraco.config");
try
{
var r = XmlReader.Create(cacheFile, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Ignore });
var d = new XmlDocument();
d.Load(r);
var n = d.SelectSingleNode("//root");
r.Close();
if (n.ChildNodes.Count == 0)
{
Response.Write("Republishing Site......");
Response.Flush();
}
else
{
Response.Write("Site Was Already Published......");
return;
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
Response.Write("Cache missing, republishing.....");
Response.Flush();
}
Document.RePublishAll();
library.RefreshContent();
Response.Write("Completed");
Response.Flush();
Response.Redirect("/");
Response.End();
}
</script>
(このコードはもともと私のものではありませんでした。どこから入手したか思い出せません)。このコードは、データベース接続が再び利用可能になるとすぐにサイトが復旧するように、サイトの再公開を試みます。
/config/splashes/noNodes.aspx のコンテンツを編集して、より適切なサイト メンテナンスまたはエラー メッセージをユーザーに表示することもできます。
クライアントのサイトがこれに苦しんでいた頃に計画されたデータベースのメンテナンスを知っていますか? そうでない場合は、ホスティングを確認する必要があるかもしれません.