簡體   English   中英

在SERVICE和Web /桌面應用程序之間進行通信

[英]Communicating between SERVICE and web/desktop application

什么是推薦的服務和桌面應用程序或網頁之間的通信方式?

我希望該服務能夠完成所有工作,但管理/管理/報告可通過網絡或桌面進行。 (它將用C#編寫.Net 4.0)

它命名為管道嗎? 插座? wcf? 休息? 肥皂 ? 其他? 什么是最佳做法?

任何信息,將不勝感激。

該服務需要實時有效,因此任何通信都需要異步。

謝謝Andrew

更新1 - 服務監視網絡流量REALTIME即服務。 客戶端可以是本地的,也可以是遠程的(使用ASP.NET / MVC甚至Silverlight)。 客戶端不需要實時數據,但應該查詢SETTINGS,Statistics,Logs等。

如果代碼的兩端都受到控制,那么除非有任何特定的要求,否則我會選擇WCF,因為“它太簡單了”。

請參閱選擇(WCF)傳輸 :從HTTP到TCP到命名管道(ooo la la!)很容易:

命名管道是Windows操作系統內核中的對象,例如進程可用於通信的共享內存部分 [read: very fast ]。 命名管道具有名稱,可用於單台機器上的進程之間的單向或雙工通信。

當然,如果違反了相同的機器要求 ,則可以使用HTTP / TCP,具體取決於網絡配置等 - 與代碼的區別? 配置設置:)

快樂的編碼。

該問題被稱為WCF或HTTP或TCP。 WCF是一個非常靈活的通信基礎。 您可以編寫一次代碼並通過HTTP JSON / POX,TCP,二進制,二進制HTTP,自定義序列化等之間的配置和代碼來裝飾您的數據類和動態交換機...您選擇的傳輸機制的問題是基於路由/防火牆限制,客戶端等......就個人而言,我喜歡HTTP和JSON / XML之類的可診斷傳輸,因為它們具有通用性,可路由性和可診斷性(checkout fiddler2)。

根據您的描述,問題的嚴重部分似乎是服務執行的REALTIME網絡流量監控。 客戶端和該服務之間的通道似乎是問題的簡單部分。

同樣從描述中,客戶端不需要是實時的,只是查詢統計信息,設置和日志。 因為客戶端可以是本地的或遠程的(遠程暗示可能在Intranet外部?外部路由)。

因此,我會將REALTIME網絡統計信息收集過程與查詢部分分離,這使得它與您提到的異步相同。 此時,該服務只是打開一個通向客戶端的通道來查詢簡單的統計信息,設置和日志......選擇最可路由和可診斷的通道,如HTP,REST JSON | XML。 如果這是一個問題,請保持WCF服務器代碼不變並更改WCF綁定配置。

問題有點開放和含糊不清,但希望這有點幫助。

暫無
暫無

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

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