2010-05-15 285 views
0

我一直在使用一個使用WCF服務的Silverlight應用程序。 [在Visual Studio]託管WCF服務

作爲一個簡單的問題我在項目本身創建了一個WCF服務[as-in我沒有託管它在IIS中,但讓VS內置webdev服務器爲我做]

它運行良好,現在我想部署它在IIS 7.0上,你能告訴我如果我需要獨立承載服務,然後剩下的東西,或者如果我只是發佈網站,服務也將託管和Silverlight客戶端將能夠與該服務進行通信。

請幫忙!

感謝

回答

1

你基本上需要

  • 在IIS 7
  • 一個SVC文件(服務文件)指示的虛擬目錄IIS如何實例化服務

你基本上有三種選擇來部署您的服務實施:

  • 你可以把你的服務實現到代碼隱藏SVC文件的文件 - 這將是我最有利的選擇 - 基本不做它 - 它就會變得混亂,並沒有提供好處

  • 可以將您的服務類文件(MyService.cs文件)和接口文件(IMyService.cs)放入App_Code目錄(如果您使用的是網站項目類型) - 我再次不太喜歡這種方法

  • 您的最佳選擇:將您的服務合同(接口)和您的服務實施放入單獨的該服務的類庫組件中,並部署該服務MyService.dll轉換爲您的SVC文件所在的虛擬目錄下的.\bin目錄。

然後,* .svc文件(純文本文件)添加到您的虛擬目錄,其中包含:

<%@ServiceHost language="c#" Debug="true" Service="MyService" %> 

當然,你需要適當的web.config條目 - 但我我確定你已經擁有了,對吧?

您的服務現在的地址是:

http://YourServer/VirtualDirectory/YourService.svc 

欲瞭解更多信息,請參閱How to: Host a WCF Service in IIS

+0

非常感謝,幫助! – Jayesh 2010-05-15 17:35:44

1

馬克得到了你該怎麼辦。爲了迴應您關於需求的問題,您將需要並希望將服務從Silverlight資產(靜態引用和XAP)中分離出來。這對於小型網站來說可能沒有多大意義,但隨着您的規模不斷擴大,您可以在不同於服務的位置(如內容分發網絡)找到您的Silverlight資產,以便將它們交付給用戶儘可能快。