簡體   English   中英

如何從Azure Web應用程序與IIS本地托管的WCF服務進行通信?

[英]How to communicate from Azure web app to WCF services hosted locally in IIS?

我在Azure中托管了一個ASP.NET MVC應用程序。 此應用程序補充有一個桌面應用程序,該應用程序還具有用於與第三方接口進行通信的WCF服務。 WCF在本地托管。

有成千上萬的客戶端在不同地理位置使用桌面應用程序。 到目前為止,每個桌面應用程序都曾經在WCF的幫助下使用api與Web應用程序進行通信。 這僅限於桌面應用程序的需求。 每當桌面應用程序需要與Web應用程序通信時,它都會使用WCF中的Web API。

現在,我想要的是:-根據需要從天藍色訪問不同的桌面應用程序(通常稱為站點)。 由於通過Web應用程序/移動應用程序的在線訂購系統,因此需要此功能。 我不想繼續從桌面應用程序輪詢以了解該站點是否有任何新訂單。 我覺得如果我能從另一邊打球會更好。 另外,請記住,站點IP不會固定。 防火牆可能有問題。 NAT可能會轉換資源標識符的方式有所不同。

天藍色的服務總線可能會有所幫助,但令我感到困惑的是,每個桌面應用程序都具有自己的WCF服務,並且訂單應僅到達各自的站點。

任何形式的想法,將不勝感激。

根據您的描述,服務總線消息傳遞是實現此目標的理想方法。

有關服務總線消息傳遞的更多信息,我們可以參考: 服務總線隊列,主題和訂閱

此外,我們還可以使用與服務總線消息傳遞類似的RabbitMQZeroMQ ,因為它們都是免費的。 您可以選擇實現需求的最佳方法。

關於ZeroMQ和RabbitMQ之間的區別:

ZeroMQ具有更好的性能,但它是在允許消息數據丟失應用於高吞吐量/低延遲應用程序的情況下構建的。 與ZeroMQ不同,RabbitMQ完全實現了AMQP協議,該協議類似於郵箱服務,支持消息持久性,事務,擁塞控制,負載平衡等,使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的更多信息,我們可以參考:

兔子MQ

零MQ

如果您能夠修改桌面應用程序,那么使用SignalR實現websockets連接可能值得一看。 桌面應用程序使用您提供的SignalR集線器進行注冊。 然后,您可以從例如ASP.NET MVC應用程序將數據推送到客戶端。 它工作非常可靠,並且可以很好地處理許多連接。 它通常用於實時Web通信,但在您的情況下也可能有用。

不利的一面可能是,桌面應用程序最初需要注冊到中心才能接收推送消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM