2012-06-28 66 views
3

我目前正在開發一個應作爲WCF服務(當然還有客戶端應用程序)實施的項目。輕鬆將WCF的託管從自託管更改爲Windows服務託管

該項目還需要使用實體框架(代碼優先方法)作爲服務和數據庫之間的ORM層。

最終,此服務應作爲Windows服務託管。我在開始時想知道是否可以使用自託管,然後切換到Windows服務託管。在沒有手動複製文件和代碼的情況下切換視覺工作室非常簡單。

感謝

+0

託管Windows服務_is_ self-hosting。沒有區別。 –

+0

那麼這兩者之間有什麼區別:http://msdn.microsoft.com/en-us/library/ms733069.aspx和http://msdn.microsoft.com/en-us/library/ms731758.aspx? –

+0

小寫服務與大寫服務(對我而言)不一樣。第一個鏈接是Windows服務(如在管理工具中)。第二個鏈接主機只是一個.exe。如果這將是一個數據服務,那麼它通常在IIS中託管。只有一個評論,因爲我不完全理解你的問題。 – Paparazzi

回答

4

創建一個包含服務和託管沒有邏輯 「XXXServiceLibrary」 項目(DLL)。在這裏實施你的服務和他們所有的邏輯。

當你專注於服務而已,並沒有關心收留他們,你可以使用下面的主持人之一:

  • WCFServiceHost(http://msdn.microsoft.com/en-我們/庫/ bb552363.aspx)
  • IIS/WAS(創建一個Web項目XXXIISServiceHost,並輸入在web.config必要的配置託管你的服務,你也可以使用.SVC爲簡單起見文件)
  • 一簡單的控制檯應用程序XXXConsoleServieHost,並手動編寫自己的託管邏輯。但是,如果您的服務不需要任何特殊的託管邏輯,請使用兩個首選項之一。

當你完成開發和單元測試你的服務,然後創建你的XXXWinSvcServiceHost項目(Windows服務),並實現你的託管邏輯。

你明白了。將您的服務庫與其託管項目分開。是的,從一個主機轉移到另一個主機是非常容易和直接的。在大多數情況下,您不需要重複配置工作;只是複製它。

+0

謝謝穆薩。我想我會在開發期間使用WCFServiceHost –

+0

不錯的選擇。我忘了提及。在Visual Studio中,如果您創建了「wcf服務庫」項目類型,它爲您整合了WCFServiceHost,因此您可以「啓動」該項目。 你也可以在visual studio中自己設置它。 更好的是,您也可以在項目啓動時啓動wcftestclient。請參閱:http://blogs.msdn.com/b/wcftoolsteamblog/archive/2010/01/04/tips-for-launching-wcf-test-client.aspx – xtrem

+0

非常感謝 –