WCF 綁定 - 太多了!我該如何選擇?
我們有一個R 伺服器 (R 是一種用於統計分析的程式語言),它基本上接受一個腳本和一個 csv 文件,處理一些數據並以文本形式返回結果。
我需要在 R 伺服器上編寫一個服務,以便 .net 客戶端(可以是 .Net Windows Forms 或 ASP.Net)可以連接到 R 伺服器,送出腳本和 CSV 文件,然後取回結果。
我對可用的許多不同綁定感到困惑,並且網路上的資訊似乎很少/分散關於選擇哪個綁定。
此外,最好是在 IIS 中執行該服務,還是作為單獨的“命令行”類型的偵聽器服務(後者與 IIS 相比看起來很難看,我不知道如果他們可以在 IIS 中執行它,為什麼有人會選擇這樣做)?
就個人而言,我會推薦最簡單的綁定,以滿足您的需求。我已經完成了很多 WCF(有些非常複雜),而且我從來沒有使用過 BasicHttpBinding 以外的任何東西;這也允許與非 .NET 客戶端最大可能的兼容性,並允許您使用諸如 MTOM 之類的東西來進行有效的二進制傳輸。
重新託管;IIS 確實是最簡單的客戶端/伺服器設置;兩個特別的優勢:
- 易於配置 SSL(即您只需配置 IIS,WCF 將使用它)
- 易於負載平衡(只需對您的網路場進行負載平衡)
(我相信在 BasicHttpProfile 上執行的 WCF 也可以利用您的 IIS 壓縮 [GZip/Deflate] 設置,但不要引用我的話……)
如果(例如)您想要一個長時間執行的有狀態伺服器,您可以選擇使用獨立主機(通常通過 Windows 服務)。IIS 有這種回收應用程序池的習慣(通過設計),如果您將某些內容保存在記憶體中,那就不好了!另一個例子是您希望它已經執行以獲得快速的“首次命中”性能(而不是等待 IIS/ASP.NET 啟動)。涵蓋這兩種情況的範例可能是託管 WF(工作流)伺服器。
再次; 如果您不需要這種複雜性,請選擇最簡單的選項:在 IIS 中託管。