0

我在 Azure Sandbox 上遇到过一个文档,提到我们可以通过 TCP 以及命名管道在 WebApp Sandbox 内的进程之间进行通信。我将 WCF 服务部署为 WebJob,我可以通过 TCP 以及命名管道在 WebApp Sandbox 中部署的两个 WebJobs 之间进行通信。当我尝试从 WebApp 进行通信时出现问题。我得到与沙盒文档( https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#local-address-requests)中提到的相同的错误。

我在 Kudu 中看到的一件奇怪的事情是有两个单独的 w3wp.exe 正在运行,一个用于 Web App,另一个用于 SCM(WebJob 等)。不知何故,它们之间似乎无法通过端口/命名管道进行通信。

在此处输入图像描述

有没有人有更多关于如何访问此服务的详细信息?

4

3 回答 3

0

注意:您无法通过 Azure 网站(或 WebJobs)中的 localhost 进行通信,也无法侦听非 80/443 端口。

如果您只想传递消息,则可以使用文件系统进行通信。您从 中写入文件WebJob并使用 aFileSystemWatcher来监视文件更改。

或者你可以使用 web socket 与SignalR相互通信,你可以参考这个博客

如果您仍有疑问,请告诉我。

于 2018-11-21T01:59:53.097 回答
0

仅当 TCP 或命名管道服务在主站点上运行时,通信才有效。单片机站点作为客户端可以与之对话。由于某些限制,不支持其他方式(这是您想要的)。

于 2018-11-21T08:25:48.087 回答
0

我进行了更多探索,发现最接近的答案是WEBSITE_DISABLE_SCM_SEPARATION=true在应用程序设置中进行设置。这将使 WebApp 和 SCM 进程在同一个沙箱中工作。不幸的是,此选项已被 Azure 弃用,不再受支持。感谢大家尝试回答。更多信息可以在这里找到。

于 2018-11-22T19:57:13.357 回答