我正在运行 Azure Web 作业和 Azure Web 应用程序。该作业定期运行,并且 Web 应用程序需要作业的结果。我如何在那里得到结果?
我尝试过使用 WCFnetNamedPipeBinding
但由于 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
(using basicHttpBinding
)。可能该网络应用程序有一个我不知道的内部端口号。
您有几个选择:
- 使用文件系统传递消息
- 使用 Azure 存储队列在两者之间传递消息
- 使用Azure服务总线队列传递消息
- 使用任何共享存储(数据库、Azure 存储等)来传递消息
所有这些方法的好处是,它使您的消息传递异步,因此对于两个服务之一(Web 应用程序或 Web 作业)在一段时间内出现故障时更具弹性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)