【问题标题】:Connecting to an Azure Webjob from an application within the same App Service从同一应用服务中的应用程序连接到 Azure Webjob
【发布时间】:2017-12-08 01:50:06
【问题描述】:

我一直在我的应用程序中使用 Microsoft Orleans 框架,现在正尝试将其部署到 Azure。如果您不熟悉,Orleans 是一个 Virtual Actor 框架,它公开了称为 Silos 的服务器,其中代码被实例化、保存在内存中直到它空闲一段时间,然后被卸载。然后,我的 WebApi 应用程序充当客户端,并将连接到 Orleans silo。

我已经在 Azure 应用服务中部署了 WebApi 应用程序,并在同一个应用服务中创建了一个运行 Silo 的连续 Web 作业。但是,当 WebApi 客户端尝试连接到 Silo 时,我在日志中看到“无法连接”错误(尝试通过 TCP)。

这让我觉得也许我需要将虚拟网络附加到应用程序服务,但这并没有解决问题(相同的日志消息),而且我没有看到任何表明我还需要添加webjobs 到虚拟网络。

我应该能够通过网络将这两个应用程序连接在一起吗?

【问题讨论】:

  • 您是否尝试过使用 Azure Service Fabric 来托管您的 Orleans 应用程序?
  • @baskar 我没有。我去看看

标签: c# azure asp.net-web-api azure-webjobs orleans


【解决方案1】:

主站点运行在与 WebJobs 不同的沙箱中,WebJobs 在“scm 站点”中运行。它们的设置使 scm 站点可以与主站点通信,但反之则不行。这可能是在这里阻止您的原因。

如果您的 Azure 应用设置让它们在同一个沙箱中运行,请尝试设置 WEBSITE_DISABLE_SCM_SEPARATION=true(请参阅doc)。尽管请注意,从技术上讲,它不再是官方支持的模式。不过,测试这是否有帮助会很有趣。

【讨论】:

  • 这非常有效。您知道今后是否有更好的方法来做到这一点(因为它不再受技术支持)?
  • 对奥尔良不是很熟悉,但也许 WebAPI 本身可以自己启动 Silo 进程(当它启动时),稍后让它与它们对话。可能不理想,其他人可能有其他想法。
猜你喜欢
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
相关资源
最近更新 更多