2016-02-13 55 views
0

我遇到此鏈接,該鏈接顯示如何使用Servicecontrol事件。 http://docs.particular.net/servicecontrol/contracts#servicecontroleventsxmlconfig-v3_x-5_xNServicebus - 攻絲ServiceControl MessageFailed事件

在實現這一點時,只考慮持久性在這裏如何工作。我用什麼作爲持久性存儲?我的產品環境中,我實現了SQL持久性。由於servicecontrol擁有RavenDB作爲其持久性存儲,我是否使用相同的存儲,即RavenDB? 任何人都有這樣的配置如何看起來像嗎?

回答

0

你可以自由使用任何你想要的持久存儲。您只需在此處訂閱服務控制的事件,因此服務控制的內部持久性對您無關緊要。這裏唯一重要的是您將端點配置爲使用文中所示的json序列化。

0

服務控制使用RavenDB來保存消息以用於錯誤和審計目的。它通過Service Pulse和Service Insight可以使用的API公開這些信息。當您嘗試訂閱郵件時,您不必擔心它將RavenDB用作持久性。這只是服務控制的一個實現細節。

持久性不像您配置的傳輸那麼重要。如果您使用的是SQL Transport,則Service Control已將表(隊列)添加到您已設置的NSB Transport數據庫中。服務控制通過您配置的傳輸,以與其他NSB主機相同的方式監聽應用中的消息。

如果服務控制當前正在運行,那麼您就準備好了。您只需訂閱這些事件並像使用任何其他NSB主機一樣定義端點。從文檔:

<UnicastBusConfig> 
    <MessageEndpointMappings > 
    <add Assembly="ServiceControl.Contracts" 
     Endpoint="Particular.ServiceControl" /> 
    </MessageEndpointMappings> 
</UnicastBusConfig> 

記住,當你(或你的團隊)配置服務控制,他們不得不將其指定使用要與您的NSB主機其餘部分的運輸。

+0

啓動我的端點時出現以下錯誤: 錯誤NServiceBus.GenericHost啓動端點時出現異常。 System.Exception:沒有選擇持久性,請通過調用configuration.UsePersistence來選擇持久性。() –

+0

由於某種原因,我無法獲得此項工作。問題是,我的主機安裝在D:\ NServiceBus \ **********下。NsbAudit.QueueService和ServiceControl安裝在C:\ Program Files文件(x86)\特定軟件\ ServiceControl下。 我在servicecontrol日誌中看到消息: 2016-02-16 18:31:04.5882 | 300 |信息| ServiceControl.EventLog.GenericAuditHandler |事件:MessageFailed發出 2016-02-16 18:31:04.5882 | 48 | Info | ServiceControl.EventLog.GenericAuditHandler | Event:MessageFailed發射 2016-02-16 18:31:05.1498 | 181 | Info | ServiceControl.EventLog.GenericAuditHandler |事件:MessageFailed發出 –

+0

@HarshNanchahal使用與其餘部分相同的持久性和傳輸的主機。持久性並不意味着排隊的郵件存儲在哪裏。 –