【问题标题】:Preloading variables in RoleEntryPoint OnStart在 RoleEntryPoint OnStart 中预加载变量
【发布时间】:2015-11-16 08:50:18
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: asp.net azure asp.net-web-api owin azure-web-roles


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多