从同一应用服务中的应用程序连接到 Azure Webjob

Connecting to an Azure Webjob from an application within the same App Service

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

我已经在 Azure App Service 中部署了 WebApi 应用程序,并且在同一个 App Service 中创建了一个运行 Silo 的连续 webjob。但是,当 WebApi 客户端尝试连接到 Silo 时,我在日志中看到 "Unable to connect" 错误(尝试通过 TCP)。

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

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

主站点 运行 位于与 WebJobs 不同的沙箱中,运行 在 'scm site' 中。它们的设置使 scm 站点可以与主站点通信,但反之则不行。这可能是你在这里受阻的原因。

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