2012-02-10 70 views
-1

我在Azure中託管WCF服務時有一些不明確的問題:我將只有一個Web服務(無網頁),只是通過更多客戶端的Web服務將能夠保存數據到SQL Azure。在Azure中託管WCF服務並使用它們

我在本地機器上創建了Web服務。

  1. 託管服務:什麼是託管它的最佳方式,牢記沒有網頁?我想過將它託管在一個工作角色中,並使用Queues存儲來存儲來自客戶端的請求......這很好嗎?對於服務使用WCF託管角色可能更好,將存儲工作的隊列和將從隊列中提取任務的工作者角色排隊(先入先出)。你推薦什麼人?

  2. 你有任何示例代碼如何序列化一個對象並將其發送到WCF服務,然後反序列化它?我有這個問題,不能得到它的工作。

  3. 我遇到了使用證書的服務的安全性。

我已經在此發佈了另一個問題:Best Practices WCF Service - Windows Azure但我在Azure的開始階段。

+0

因此,將只託管WCF服務,客戶端可以以安全的方式(證書)連接和保存數據到SQL azure,基本上會有相當多的後臺工作......所以爲此,我考慮將它託管在一個工作人員的角色會更好......擔任主持人並擁有相當多的背景工作......這會影響表演嗎? – user1200425 2012-02-10 20:32:35

+0

嗨再次...我去了一篇文章:,你認爲這種認證方法,而不是使用SSL證書?驗證客戶端的最佳方式是什麼?再次感謝! – user1200425 2012-02-10 20:45:29

+0

每個問題請提出一個問題。 – 2012-02-11 03:27:27

回答

2

除非

  1. 你希望得到您的服務或每封郵件要處理可能需要較長時間交通非常繁忙,客戶端即可使用異步服務調用
  2. 你有特別嚴格的安全關注和需要使用gatekeeper pattern

我會爲您的服務使用Web角色。這應該給你非常好的和簡單的可擴展性 - 只需增加更多的角色實例。

通過隊列將業務處理卸載到後臺工作人員角色的模式主要用於在流量非常高或計算成本很高的服務中進行負載均衡,或執行非常嚴格的訪問控制。

爲了安全起見,證書是相對複雜的,特別是如果您必須想出一種將它們分發給客戶端的方法。在Azure上,使用Azure訪問控制服務(ACS)可能更有意義,這使您可以與各種身份提供程序(如Live ID,Google,Yahoo!和Facebook。如果您的客戶處於Windows企業類型環境中,那麼他們可以與其本地Active Directory進行聯合。最好的方式真的取決於你的具體情況。對於ACS一個很好的起點是

http://msdn.microsoft.com/en-us/library/windowsazure/gg429784.aspx

你如何使用ACS取決於服務的性質的細節。如果它是一個SOAP服務(例如WCF中的wsHttpBinding或basicHttpBinding),我會使用WIF。這得到很好的支持,編程非常簡單。再次,有很多關於如何做到這一點的教程。谷歌將成爲你的朋友。如果您正在開發REST服務,開發起來會有點複雜,但仍然非常可行。

http://social.technet.microsoft.com/wiki/contents/articles/4067.aspx

至於序列化的對象發送到WCF服務,如果您正在使用。Net在客戶端,這一切都是由WCF客戶端堆棧爲您處理的。網上有很多教程,樣本,書籍和培訓課程。試試這個作爲首發在Azure上

http://msdn.microsoft.com/en-us/library/windowsazure/gg651130.aspx

SOAP的選擇或REST再次取決於您的方案

  • REST會給你不同的客戶更廣泛的支持,如移動設備等
  • SOAP爲您提供了更多安全選項和一些更復雜的行爲,但會限制您的客戶更多地使用REST

這些天REST非常流行,但它確實取決於您的需求。 SOAP仍然適用於許多用例。

對於更具體的答案,你將不得不提供更具體的服務和你的情況。但是,如果您處於早期階段,仍然需要就如何繼續進行選擇(這聽起來像是這樣),那麼這些鏈接應該可以幫助您開始。