2016-08-24 5 views
0

ravenDb를 사용하여 nservicebus 호스트 사가를 지속시키기 위해 사용자 정의 데이터베이스 이름 (엔드 포인트가 아님)을 사용할 수 있습니까?지속되는 호스트 사가에 대한 사용자 정의 데이터베이스 이름

저는 NServiceBus 3.3 및 RavenDB 2.5를 사용합니다. 이러한 방법으로 endpoind를 초기화 :

public class RavenConfig : IWantCustomInitialization 
{ 
    public void Init() 
    { 
      Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
      Configure.Instance.RavenSagaPersister(); 
      Configure.Instance.RavenSubscriptionStorage(); 
      Configure.Instance.UseRavenTimeoutPersister(); 
    } 
} 

내의 App.config 포함 : 문서에서

<connectionStrings> 
    <add name="AllHostsRavenDB" 
    connectionString="Url=http://localhost:8080; DefaultDatabase=ABC;" /> 
</connectionStrings> 

답변

0

:

코드에서 데이터베이스 이름을 제어하려면, 대신 를 통해 구성에서 Configure.RavenPersistence (문자열 connectionStringName, string databaseName) 시그너처를 사용하십시오. 멀티 테넌트 시나리오에서 유용 할 수있는 일 수 있습니다.

http://docs.particular.net/nservicebus/ravendb/#nservicebus-3-and-nservicebus-4-overriding-the-defaults

는이 문제를 해결할 것인가?

+0

아니,하지만 덕분에 나는에서 내 사용자 지정 intitialization을 변경했습니다. –

+0

'Configure.RavenPersistence ("AllHostsRavenDB", databaseName_has_to_be_guid)'를 사용할 수 있어야합니다.하지만 제가 시도 할 때 유효한 GUID를 지정하지 않는 것에 대한 까마귀의 예외가 계속 발생합니다. 조사하고 업데이트 해 드리겠습니다. – wlabaj

1

나는 마침내 작동했습니다!

public class RavenConfig : IWantCustomInitialization 
{ 
    public void Init() 
    { 
     Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
     Configure.Instance.RavenSagaPersister(); 
     Configure.Instance.RavenSubscriptionStorage(); 
     Configure.Instance.UseRavenTimeoutPersister(); 
    } 
} 

에 :

public class RavenConfig : IWantToRunBeforeConfigurationIsFinalized 
{ 
    public void Run() 
    { 
     Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
     Configure.Instance.RavenSagaPersister(); 
     Configure.Instance.RavenSubscriptionStorage(); 
     Configure.Instance.UseRavenTimeoutPersister(); 
    } 
} 
관련 문제