我遇到了有关Azure沙箱的文档,其中提到我们可以通过TCP以及命名管道在WebApp沙箱中的进程之间进行通信。我已将WCF服务部署为WebJob,我可以通过TCP以及命名管道在WebApp沙箱中部署的两个WebJob之间进行通信。当我尝试从WebApp进行通信时出现问题。我收到与沙盒文档(https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#local-address-requests)中提到的错误相同的错误。
我在Kudu中看到的一件奇怪的事情是有两个单独的w3wp.exe运行,一个用于Web App,另一个用于SCM(WebJob等)。而且看起来好像它们之间无法通过端口/命名管道进行通信。
有人有更多有关如何使用此服务的详细信息吗?
答案 0 :(得分:0)
注意:您不能通过Azure网站中的localhost进行通信(或 WebJobs),并且无法在非80/443的端口上侦听。
如果您只想传递消息,则可以使用文件系统进行通信。您从WebJob
写入文件,并使用FileSystemWatcher
监视文件更改。
或者您可以使用Web套接字与 SignalR 之间相互通信,您可以参考此blog。
如果您还有问题,请告诉我。
答案 1 :(得分:0)
仅当TCP或namedpipe服务在主站点上运行时,通信才有效。作为客户的SCM站点可以与其交谈。由于某些限制,不支持另一种方法(这就是您想要的方法)。
答案 2 :(得分:0)
我进行了更多研究,发现最接近的答案是在“应用程序设置”中设置WEBSITE_DISABLE_SCM_SEPARATION=true
。这将使WebApp和SCM流程在同一沙箱中工作。不幸的是,Azure不赞成使用此选项,并且不再支持。感谢所有尝试的答案。可以找到更多信息here。