2012-06-08 38 views
3

我最近使用Nuget將我的發佈者/訂戶解決方案升級到NServiceBus 3.2.2版。我的NServiceBus發佈者和訂閱者都是自主託管的。升級到NServiceBus 3.2.2開始端點時的異常

出版社代碼:

我開始使用NServiceBus.Host.exe的NServiceBus發佈者(調試開始行動 - 啓動項目屬性外部程序)。

的app.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" /> 
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" /> 
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" /> 
    </configSections> 
    <MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" /> 
    <UnicastBusConfig ForwardReceivedMessagesTo=""> 
    <MessageEndpointMappings></MessageEndpointMappings> 
    </UnicastBusConfig> 
    <MessageForwardingInCaseOfFaultConfig ErrorQueue="error" /> 
</configuration> 

EndpointConfig.cs:

namespace TrackEventPublisher.EventPublisher 
{ 
    [EndpointName("EventPublisher")] 
    public class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher 
    { 
    } 
} 

我跑出版商時遇到了以下錯誤:

異常啓動端點時,錯誤已被記錄。原因:調用類型爲'RavenTimeoutPersistence'的構造函數'Void .ctor(Raven.Client.IDocumentStore)'時引發異常。

堆棧跟蹤:

在NServiceBus.Hosting.GenericHost.Start()在d:\ BuildAgent-03 \工作\ nsb.master22 \ SRC \託管\ NServiceBus.Hosting \ GenericHost.cs:線45 在NServiceBus.Hosting.Windows.WindowsHost.Start()在d:\ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ WindowsHost.cs:line 56 at NServiceBus.Hosting.Windows.Program 。 <> c_ DisplayClass8.b _4(WindowsHost service)in d:\ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ Program.cs:line 95 at Topshelf.Internal.ControllerDelegates 1.StartActionObject(Object obj) in d:\dev\open-source\topshelf\src\Topshelf\Internal\ControllerDelegates.cs:line 18 at Topshelf.Internal.IsolatedServiceControllerWrapper 1. <> C_ DisplayClass2.b _1(TService服務)在d:\ dev的\開源\ topshelf \ SRC \ Topshelf \內部\ IsolatedServiceControllerWrapper.cs:線65 在Topshelf.Internal.ServiceController 1.<.cctor>b__1(ServiceController 1個SC )放在d:\ dev \ open-source \ topshelf \ src \ Topshelf \ Internal \ ServiceController.cs中:line 35 at Magnum.StateMachine.LambdaAction 1.Execute(T instance, Event event, Object parameter) in :line 0 at Magnum.StateMachine.EventActionList 1.執行(T stateMachine,Event event,Object parameter)in:line 0

什麼可能會導致此錯誤?
任何人都可以告訴我我的端點配置有什麼問題嗎?

我的解決方案與早期版本的NServiceBus(3.0之前的版本)很好地協同工作。

更新: 這裏是內部異常的消息:「無法連接到遠程服務器」

是烏鴉服務器通過NServiceBus自動啓動?這樣看來,它不是我的機器上運行...

更新 那麼,由於某種原因,RavenDB服務沒有在我的機器上運行 - 雖然它被設置爲自動啓動。我的解決方案現在工作正常。我想我必須學習有關RavenDB的難題:)。

有沒有人有問題運行RavenDB服務?

更新

現在,我有我的服務正常運行,我嘗試在不同的機器上運行它。 msmq文件夾未創建,並且出現RavenDB不可用的錯誤。事實上,在我的解決方案在不同的Windows操作系統機器上運行後,RavenDB服務沒有安裝。我試着運行版本爲3.2.2的「RunMeFirst.bat」。但是,bat文件試圖用visual studio安裝擴展。如果安裝了visual studio,則會發布另一個錯誤,但未安裝Nuget擴展。

有沒有更好的方法來啓用NServiceBus.Host.exe來安裝RavenDB服務器和msmq文件夾,而無需在Windows操作系統計算機上安裝Visual Studio實例?

更新

哇,大多數更新永遠!我添加了下面的類,其成功創建MSMQ文件夾我的出版商項目:

class MsmqTransportConfigOverride : IWantCustomInitialization, INeedToInstallInfrastructure<Windows> 
    { 
     public void Init() 
     { 
     Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install(); 
     } 

     public void Install(System.Security.Principal.WindowsIdentity identity) 
     { 
     } 
    } 

這它實現了IWantCustomIntialization接口新的類,似乎工作的偉大。但是,我仍然在努力更新我的發佈者,以便在Windows主機上安裝RavenDB。我知道在那裏有一個命令行提示可以促進這一點,但有沒有其他方法?我試圖實現INeedToInstallInfrastructure接口,但我找不到任何示例。有沒有人有任何想法?

回答

2

我們只運行安裝程序,如果您: 1.安裝端點作爲Windows服務(如果在生產運行概況=>默認)在調試模式下 2.運行在整合/精簡版 3.運行型材

因此,這將解釋爲什麼隊列不創建(假設以上都不是真正適合你?)

+0

你猜對了,以上都不是真實的。我能夠使用NServiceBus.Host32.exe/installInfrastructure(來自二進制文件夾)在本地驅動器上安裝RavenDB。然後我使用c:\​​ Windows \ Microsoft.Net \ Framework \ v4.0.30319 \ InstallUtil「c:\ program files \ NServiceBus.Persistence \ Raven.Server.exe」來安裝RavenDB windows服務。那之後我的發佈者工作得很好。 Hoorah!看起來我需要回顧一下NServiceBus配置文件。感謝您的幫助Andreas! – EnLaCucha

+0

奇怪的是,我們應該自動爲你安裝一個winservice Raven.Server嗎? –

+0

我注意到版本3.2.2的新「RunMeFirst.bat」文件依賴於Visual Studio和Nuget擴展管理器。由於我的軟件測試人員的機器沒有Visual Studio實例,因此我需要一種安裝基礎結構的方法。命令行NServiceBus.Host32.exe/installInfrastructure未自動安裝並啓動Raven.Server。對Raven.Server進行自動安裝本來就不錯。此鏈接顯示其他人有類似的問題? http://tech.groups.yahoo.com/group/nservicebus/message/14190/installInfrastructure是否更改爲3.2.2版本? – EnLaCucha

相關問題