c# - 如何从 Azure webjob 到 Azure webapp 进行通信?

标签 c# wcf azure azure-web-app-service azure-webjobs

我正在运行 Azure Web 作业和 Azure Web 应用程序。该作业定期运行,并且 Web 应用程序需要作业的结果。我如何在那里得到结果?

我尝试使用 WCF netNamedPipeBinding,但由于 Azure Web 应用程序没有启动任务,我无法将 net.pipe 绑定(bind)添加到 IIS 网站,也无法启用 net.pipe 协议(protocol)。

我现在可以使用 basicHttpBinding 来工作,但是这个绑定(bind)暴露在整个互联网上,这是我绝对不想要的。我只是希望在同一台机器上运行的 webjob 和 webapp 之间进行机器本地通信。

更正:我以为我可以在 Azure 上运行它,但事实并非如此。在 Azure 上运行时,我从 webjob 中收到错误:尝试以访问权限 127.0.0.1:80 禁止的方式访问套接字(使用 basicHttpBinding )。可能该网络应用程序有一个我不知道的内部端口号。

最佳答案

您有几个选择:

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

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

关于c# - 如何从 Azure webjob 到 Azure webapp 进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31114346/

相关文章:

WCF 消息记录 - 使用 XPath 查询添加过滤器

azure - 如何调用 PullRequestQuery Azure Git API?

azure - 无法连接到 ElasticSearch 托管服务

windows - AzureAD中的Remove-Msoldomain cmdlet没用?

c# - 如何为 XmlElement 字段定义多个名称?

c# - Xamarin Android DownloadString 需要很长时间甚至无法工作

.net - 多个同时保存导致 WCF/NHibernate "Row updated by another transaction"

c# - 如何将数据从 MQL4 传递到 C# DLL

c# - 如何使用 HTTP 在 C# 中控制设备的嵌入式控制软件?

c# - 找不到终结点 - WCF Web 服务