2012-02-02 23 views
2

我在安裝在同一域中的不同Windows 2003服務器上的Windows 2003服務器和客戶端上的IIS上安裝了wcf .svc服務。 AFAIK只能在IIS主機上使用http傳輸。用於.svc服務的Wcf配置設置以實現最高性能和受限制的客戶端

我需要指定的配置設置,即

  1. 最大化性能

  2. 只有我的客戶(位於我的域名)應該被允許使用我的服務。 服務不應該被發現,不應該從未經授權的客戶端使用。

更新:我已經concedred消息證書加密來滿足第二個要求,但它從性能的角度來看並不好。

服務包括使用字符串或字符串列表的一些操作的參數

[OperationContract] 
List<string> TranslateList(List<string> textList); 

字符串是短,列表中的數通常較小。客戶正在同步呼叫該服務,並期望能夠迅速收到響應。

請建議使用哪個配置設置?

會設置將被更改爲其它配置一樣

配置:客戶端和服務都位於相同的Windows 2003服務器

配置Ç於:客戶端和服務都位於在同一個Windows 2008服務器上(我希望我可以使用命名管道傳輸)

配置d:客戶端和服務都位於不同的Windows 2008服務器上(我希望我可以使用TCP傳輸)

+0

_「AFAIK只能在IIS主機上使用http傳輸」_ - 不完全。如果您安裝_Windows Server AppFabric_,那麼您的IIS託管的WCF服務可以公開** TCP,MSMQ **和**命名管道協議,但後者只是本地主機。 [AppFabric - 功能和功能](http://msdn.microsoft.com/en-us/library/ee677368.aspx) – MickyD 2014-08-08 13:38:37

回答

0
  1. 性能:您可以壓縮您的請求和響應。您可以通過使用gZip來實現此目的。
  2. 我的客戶只有
    • 刪除MEX從你的web.config結合,其次設定httpGetEnabledfalse。這樣,沒有人可以創建你的服務的代理。
    • 您可以使用Http Headers檢查請求是否僅來自您的客戶端。閱讀更多關於here

對於選擇綁定here是一個很好的文章

配置B:WSHttpBinding
配置C:NetNamedPipeBinding
配置d:NetTcpBinding

您還可以檢查NetTcpBinding的here的性能

希望這可以幫助你。

+0

通過刪除mex並禁用httpGetEnabled是否意味着,沒有人能夠AUTOMATICALLY GENERATE代理服務? – 2012-02-02 19:46:16

+0

添加Http標頭將不起作用。黑客也可以添加相同的標題。 – 2012-02-02 19:57:16

+0

是的。沒有人可以創建你的班級代理。你可以把動態頭像會話ID。您可以限制每分鐘的通話時間,這樣任何人都無法使用服務。而作爲你的服務客戶端是ASP.Net,服務端點將不會被最終用戶看到(假設所有的AJAX調用都通過ASP.Net)。 – 2012-02-03 04:18:52

相關問題