通过WebApp沙箱访问在Azure上作为WebJob部署的WCF服务

时间:2018-11-20 22:43:31

标签: azure azure-webjobs azure-web-app-service azure-webapps

我遇到了有关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等)。而且看起来好像它们之间无法通过端口/命名管道进行通信。

enter image description here

有人有更多有关如何使用此服务的详细信息吗?

3 个答案:

答案 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