gpt4 book ai didi

c# - 启动时从角色入口点加载 DataCache

转载 作者:行者123 更新时间:2023-12-03 06:05:36 24 4
gpt4 key购买 nike

我想从我的角色输入启动例程访问我的 Windows Azure 数据缓存。但是我不断收到此错误:

{“ErrorCode:SubStatus:服务器集合不能为空。”}

但是,当我在 Controller 类中执行相同操作时,它会很好地加载数据缓存,我可以继续使用它执行操作。

在应用程序启动之前,我必须对 Role Entry 类执行哪些特殊操作才能访问数据缓存?

或者我无法在角色启动中访问缓存?

干杯

最佳答案

从 Azure SDK 1.3 开始,有一个重大变化 - 完整 IIS 模式。阅读 this blog post充分了解完整的 IIS 以及它是什么。

简而言之 - 您的 RoleEntryPoint 后代(执行 OnStart 方法的位置)位于整个另一个 AppDomain 中(实际上是进程 - WaIISHost.exe),而您的实际 Web 应用程序仅位于 IIS (w3wp.exe) 中。这就是为什么在 OnStart() 中无法执行会影响您的 Web 应用程序或能够直接读取您的 web.config 的操作。

如果您确实在 OnStart 中读取 Azure 数据缓存来为 Web 应用程序执行一些数据预加载,只需在 Global.asax 的 Application_Start() 事件处理程序中执行即可。

如果由于 RoleEntryPoint 特定的原因需要在 OnStart 中读取 Azure 数据缓存,则必须从 web.config 加载配置。 Web.config 放置在相对于您的 AppRoot 文件夹的“./bin/web.config”中。 (当您将 WebRoles 与完整的 IIS 一起使用时,您的应用程序有两个副本 - 一份位于 AppRoot 中,一份位于 SitesRoot 中)。

希望这有帮助!

关于c# - 启动时从角色入口点加载 DataCache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com