如何从Azure webjob与Azure webapp进行通信?

Ron*_*erg 6 c# wcf azure azure-web-sites azure-webjobs

我正在运行Azure webjob和Azure webapp.作业定期运行,并且需要在webapp中完成作业.我如何在那里得到结果?

我尝试使用WCF,netNamedPipeBinding但由于Azure webapps没有启动任务,因此无法将net.pipe绑定添加到IIS网站,也无法启用net.pipe协议.

我现在有一个工作,basicHttpBinding但这个绑定暴露给我绝对不想要的整个互联网.我只想在同一台机器上运行的webjob和webapp之间进行机器本地通信.

更正:我认为我在Azure上工作但事实并非如此.在Azure上运行时,我从webjob收到错误:( An attempt was made to access a socket in a way forbidden by its access permissions 127.0.0.1:80使用basicHttpBinding).可能webapp有一个我不知道的内部端口号.

Zai*_*zvi 5

您有几个选择:

  1. 使用文件系统传递消息
  2. 使用 Azure 存储队列在两者之间传递消息
  3. 使用 Azure 服务总线队列传递消息
  4. 使用任何共享存储(数据库、Azure 存储等)来传递消息

所有这些方法的好处是,它使您的消息传递异步,因此对两个服务(Web 应用程序或 Web 作业)之一在一段时间内停机时更具弹性。