在 RoleEntryPoint OnStart 中预加载变量

Preloading variables in RoleEntryPoint OnStart

我需要从数据库下载一些表格,并用这些信息创建静态列表 类。我可以在 owin 启动或 RoleEntryPoint onStart 中执行此操作。

我尝试在 RoleEntryPoint onStart 中预加载列表,但是,这些 类 似乎在运行时不可用,而是重新创建了它们。

如果我在 Owin Startup 中预加载它们,一切都会正常运行。

但是,我需要大约 10 秒来预加载这些列表,并且在执行 owin 启动时,Onstart 已经执行,因此 Web 角色可用于接受请求。我不想要这个。在预加载所有列表之前,我不希望 Web 角色切换到就绪状态。

似乎在 RoleEntryPoint 中创建的任何实例在 webrole 运行时本身中都不可用。

有什么方法可以在 OnStart 中实现预加载实例并能够在运行时使用它们吗?

RoleEntryPoint 是实现您要求的最佳方式。

在WebRole.cs中用单例模式定义静态列表变量。 实施异步存储库或私有方法来填充它们。您不必在应用程序启动时填充静态列表。根据单例模式,它们将在第一次请求时被填充。

我在 WCF 服务启动过程的静态存储库实例初始化中使用相同的方法。 祝你好运