c# - 如何从 Azure Web 应用程序与 IIS 中本地托管的 WCF 服务进行通信?

标签 c# azure wcf

我有一个托管在 Azure 中的 ASP.NET MVC 应用程序。 该应用程序由桌面应用程序补充,该桌面应用程序还具有用于与 III 方接口(interface)进行通信的 WCF 服务。 WCF 在本地托管。

有成千上万的客户在不同的地理位置使用桌面应用程序。 到目前为止,每个桌面应用程序都过去在 WCF 的帮助下使用 api 与 Web 应用程序进行通信。 这仅限于桌面应用程序的需求。 每当桌面应用程序需要与 Web 应用程序通信时,它都会使用 WCF 的 Web api 方式。

现在,我想要的是:- 根据需要从 azure 访问不同的桌面应用程序(通常称为站点)。 这是通过网络应用程序/移动应用程序进行在线订购系统所必需的。 我不想继续从桌面应用程序轮询以了解该网站是否有任何新订单。 我觉得如果我能从另一边踢球的话会更好。 另外,请记住,站点的 IP 不会是固定的。防火墙可能有问题。 NAT 可能会以不同的方式翻译资源标识符。

Azure 中的服务总线可能会有任何帮助,但令我困惑的是,每个桌面应用程序都有自己的 WCF 服务,并且订单应该仅到达相应的站点。

任何类型的想法都将受到赞赏。

最佳答案

根据您的描述,服务总线消息传递是实现此目标的完美方式。

更多关于Service Bus Messaging的信息,我们可以引用:Service Bus queues, topics, and subscriptions

此外,我们还可以使用RabbitMQZeroMQ,这与Service Bus Messaging类似,因为它们都是免费的。您可以选择实现您的需求的最佳方式。

关于ZeroMQ和RabbitMQ的区别:

ZeroMQ具有更好的性能,但它是在允许消息数据丢失的情况下构建的,适用于高吞吐量/低延迟的应用程序。与ZeroMQ不同,RabbitMQ完全实现了AMQP协议(protocol),类似于邮箱服务,支持消息持久化、事务、拥塞控制、负载均衡等,使得RabbitMQ拥有更广泛的应用场景。

Function                    RabbitMQ                      ZeroMQ
Message persistence         Support                       Not Support
Transaction                 Support                       Not Support
performance                 Low                           High
stability                   High                          Low
Support for AMQP protocol   Support                       Not Support
Application scenario        Data loss is not allowed      High throughput

更多关于RabbitMQ和ZeroMQ的信息,大家可以引用:

RabbitMQ

ZeroMQ

关于c# - 如何从 Azure Web 应用程序与 IIS 中本地托管的 WCF 服务进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592810/

相关文章:

c# - Utility 和 Helper 类之间的区别

c# - 搜索文件内容以查找与正则表达式的匹配项

java - 如何在Java中获取FileInputStream中的azure blob存储内容?

azure - 如何从 Bicep 获取 Azure Functions key

c# - CustomAuthorizationPolicy.Evaluate() 方法永远不会在 wcf webhttpbinding 中触发

wcf - 如何在 WCF 中为非自定义绑定(bind)定义 maxReceivedMessageSize 时使用 ServiceRoutes

c# - 为接口(interface)重载 operator==

c# - 如何获取 Timer Elapsed 事件中发生的异常?

javascript - 从 React 订阅 Azure Pub Sub Web 服务会导致未处理的拒绝(TypeError)

c# - 如何返回在 Windows Azure 上运行的 WCF 服务中的文件?