从 Azure WebJob 访问 Azure WebApp 对象
Access Azure WebApp Object From Azure WebJob
我们在 WebApp 中有一个静态 Class,其中包含当前会话和用户名的静态字典。我们需要访问 WebJob 中字典中的数据,因为我们希望根据当前有活动会话的用户更新数据。 webJob 每 5 分钟运行一次,需要有 sessions/users.
的当前列表
我可以从网络作业访问词典,但它始终为空。我们已经登录了验证字典中有条目的 webApp,但是当 webjob 访问字典时它为空。
如何在 webJob 中获取该对象并获取其数据?我们需要使用 Azure 存储 (Queue/Table) 才能工作吗?
一个 "Azure AppService" 托管在一个 "AppService Plan" 上,后者又由许多虚拟机组成。 WebJobs ("your.webjob.exe") 和 WebApps(通常 "w3wp.exe") 在这些系统上是完全独立的进程。他们可能 运行 在同一台机器上,但不能保证。无论哪种方式,它们之间的通信都是困难的,并且使用公共静态变量肯定无法实现。
对于您的用例,您应该使用公共存储。 Azure 存储可以工作,但 Azure Redis 缓存或简单的 SQL 也可以解决问题。取决于您的框架和要求。
我们在 WebApp 中有一个静态 Class,其中包含当前会话和用户名的静态字典。我们需要访问 WebJob 中字典中的数据,因为我们希望根据当前有活动会话的用户更新数据。 webJob 每 5 分钟运行一次,需要有 sessions/users.
的当前列表我可以从网络作业访问词典,但它始终为空。我们已经登录了验证字典中有条目的 webApp,但是当 webjob 访问字典时它为空。
如何在 webJob 中获取该对象并获取其数据?我们需要使用 Azure 存储 (Queue/Table) 才能工作吗?
一个 "Azure AppService" 托管在一个 "AppService Plan" 上,后者又由许多虚拟机组成。 WebJobs ("your.webjob.exe") 和 WebApps(通常 "w3wp.exe") 在这些系统上是完全独立的进程。他们可能 运行 在同一台机器上,但不能保证。无论哪种方式,它们之间的通信都是困难的,并且使用公共静态变量肯定无法实现。
对于您的用例,您应该使用公共存储。 Azure 存储可以工作,但 Azure Redis 缓存或简单的 SQL 也可以解决问题。取决于您的框架和要求。