检查 Umbraco 站点是否准备就绪并且已连接到数据库
Check Umbraco site is ready and it's connected to the database
我的 Umbraco 站点有一个周期性任务,每 60 分钟 运行s。问题是当 Umbraco 还没有安装时,任务会阻止安装过程。
我正在尝试通过以下方式检测我的 Umbraco 站点的状态:
var isApplicationInstalled = uQuery.RootNodeId != -1;
if (isApplicationInstalled)
{
// run the task
}
但是uQuery.RootNodeId
似乎总是return-1
而任务从来没有运行。
如何检测 Umbraco 站点已安装并且已连接到数据库?
您可以尝试这个解决方案:覆盖 ApplicationEventHandler 中的 ApplicationStarted 方法。
当所有必需的启动准备就绪时调用该方法。然后你可以覆盖它,将全局设置设置为 true(也许你可以定义一个全局设置,如 UmbracoIsReady)。在你的循环任务中,你只需要检索 UmbracoIsReady 来检查。
public class StartupHandler : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication,
ApplicationContext applicationContext)
{
base.ApplicationStarted(umbracoApplication, applicationContext);
//Set a global variable/information to make sure that the Umbraco is ready
Setting.UmbracoIsReady = true;
}
}
通过ApplicationContext更容易检查 Umbraco 应用程序的状态:
ApplicationContext.Current.IsConfigured
检查 Umbraco 是否配置。
ApplicationContext.Current.DatabaseContext.CanConnect
检查 Umbraco 是否可以连接到数据库。
所以代码将是:
var isApplicationInstalled = ApplicationContext.Current.IsConfigured &&
ApplicationContext.Current.DatabaseContext.CanConnect;
if (isApplicationInstalled)
{
// run the task
}
我的 Umbraco 站点有一个周期性任务,每 60 分钟 运行s。问题是当 Umbraco 还没有安装时,任务会阻止安装过程。
我正在尝试通过以下方式检测我的 Umbraco 站点的状态:
var isApplicationInstalled = uQuery.RootNodeId != -1;
if (isApplicationInstalled)
{
// run the task
}
但是uQuery.RootNodeId
似乎总是return-1
而任务从来没有运行。
如何检测 Umbraco 站点已安装并且已连接到数据库?
您可以尝试这个解决方案:覆盖 ApplicationEventHandler 中的 ApplicationStarted 方法。
当所有必需的启动准备就绪时调用该方法。然后你可以覆盖它,将全局设置设置为 true(也许你可以定义一个全局设置,如 UmbracoIsReady)。在你的循环任务中,你只需要检索 UmbracoIsReady 来检查。
public class StartupHandler : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication,
ApplicationContext applicationContext)
{
base.ApplicationStarted(umbracoApplication, applicationContext);
//Set a global variable/information to make sure that the Umbraco is ready
Setting.UmbracoIsReady = true;
}
}
通过ApplicationContext更容易检查 Umbraco 应用程序的状态:
ApplicationContext.Current.IsConfigured
检查 Umbraco 是否配置。
ApplicationContext.Current.DatabaseContext.CanConnect
检查 Umbraco 是否可以连接到数据库。
所以代码将是:
var isApplicationInstalled = ApplicationContext.Current.IsConfigured &&
ApplicationContext.Current.DatabaseContext.CanConnect;
if (isApplicationInstalled)
{
// run the task
}