2010-03-19 40 views
1

我正在創建一個包含大量服務的分佈式應用程序,並且正在尋找允許我輕鬆創建和管理大量服務的技術。ASP.NET MVC作爲SOA的服務主機,如架構

我知道管理和部署Windows服務並不好玩。我正在考慮使用ASP.NET MVC作爲我的服務的服務主機,其中每個控制器操作本質上是一個服務,我可以通過簡單的HTTP請求和響應與服務進行通信,而不必處理複雜性,如果我使用WCF 。

服務需要隔離,並且據我所知asp.net請求是隔離的,即如果請求拋出異常,它不會影響其他正在運行的請求。

但我仍然有關於服務管理的問題。怎樣才能看到哪些服務正在運行,停止和恢復服務。此外,ASP.NET MVC是被動的,即他們只對請求做些事情,但如果我想要服務自己啓動工作呢?

+0

我碰到MSE(管理服務引擎)(http://www.codeplex.com/來到servicesengine)。它似乎能夠託管WCF服務,它可以替代ASP.NET MVC服務。但是,我不知道它是否可以託管「主動」服務,即獨立運行的服務。我會繼續尋找並讓你知道。 – duraid 2010-03-25 15:42:18

回答

0

很多問題都包裹在一個。 :)

MVC是一種演示模式,作爲設計服務主機的方式並沒有多大意義。

也就是說,使用ASP.Net/IIS創建服務層的過程非常快速且容易,無需使用MVC(或Webforms)。事實上,您可以使用Visual Studio輕鬆生成用於在ASP.Net中存儲服務層的所有功能。

Webservice請求確實作爲單獨的線程IIRC運行,所以它們將被隔離。

只要看到哪些服務正在運行,我不知道任何允許在IIS中進行這種報告的東西。您可能需要將更新寫入數據庫,日誌或其他數據結構,然後創建一個UI以從中讀取。

服務確實是被動的。你可以看看類似Quartz.Net的日程安排任務,但我不確定將它保持在IIS進程中運行的可靠性。這種工作的正確工具可能是Windows服務或控制檯應用程序。

+0

這當然是一個很大的問題:) 我同意MVC是爲演示文稿,但我選擇它,因爲它更接近請求/響應,然後網頁形式,我認爲我可以受益於它的功能喜歡安全/驗證比建立自己的。 – duraid 2010-03-19 22:51:12

1

我們使用ASP.Net MVC創建返回JSON結果的服務。我們在IIS中託管這些服務。

MS正在建立旨在承載WCF服務的服務器產品,你可以使用你的服務,請參見:http://samgentile.com/Web/dublin/windows-server-appfabric-formerly-dublin-beta-2-is-available/

+0

感謝您的聯繫。 AppFabric與我想要的非常相似,但是我正在尋找更輕的解決方案,並且AppFabric似乎有很多我不需要的基礎結構。 我對你的ASP.NET MVC Json服務感興趣,如果你能夠監視它們以知道它們是否還活着,等等。 – duraid 2010-03-19 22:48:55

+0

你必須使用與你的機器不在同一臺機器上的東西來監控它服務。如果整個機器停機,您將不會收到任何警告。你可以編寫一個程序來ping這個服務,如果有錯誤,它會給你發一封電子郵件,等一分鐘,然後重新開始。 – 2010-03-19 23:35:32