2011-08-17 35 views

回答

4

不,主機實例和應用程序是完全獨立的。您可以停止主機實例,並且應用程序將保持啓動狀態。您可以停止應用程序,並且主機實例將保持運行狀態。

要理解停止主機實例和停止應用程序之間的差異,首先需要了解這些內容。

基本上,您需要將您的應用程序視爲一組程序集以及一些運行時配置和一組邏輯訂閱。

當你「啓動」一個應用程序時,實際上有兩個步驟發生。

  1. 需要接收信息(業務流程和發送端口)應用程序的部分是入伍。這確保了存在內部隊列來接收消息。請注意,應用程序尚未啓動,但它可以接收和排隊消息以供日後處理。

  2. 然後當你的開始應用程序的各個部分都能夠處理消息。

主機實例基本上是一個windows服務。

當您停止主機實例時,您所做的只是停止運行主機實例的基礎Windows服務。這意味着包含應用程序工件的所有程序集都將被卸載,並且應用程序顯然會停止處理。這是儘管應用程序仍處於開始狀態。

當您再次啓動主機實例時,它會將您的應用程序程序集加載回內存,並且能夠繼續處理新消息。當主機實例停止時正在處理的消息可能處於一個名爲的狀態,暫停,但是如果它們是可以手動恢復的。

希望這會有所幫助。

1

是的,如果您的應用程序只在該主機實例上運行(意思是:應用程序將停止處理消息)。然而,它爲什麼停止處理的內部結構是完全不同的。請參閱下面的說明和hugh jadick的回答。

對指定的host type停止host instance將停止執行在指定主機上運行的所有工件(適配器處理程序,接收位置,管道,編排等)。應用程序是一組可以在單個或多個主機實例上運行的工件的邏輯組。多個應用程序可以在單個主機實例上運行,反之亦然。因此,停止應用程序只是關閉工件的執行,而停止主機實例關閉物理實例時應用程序工件正在執行。

+0

@hugh我試圖表達同樣的意思,但我的語言不夠好。我會糾正我的答案,澄清第一段。 –