我最近使用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接口,但我找不到任何示例。有沒有人有任何想法?
你猜對了,以上都不是真實的。我能夠使用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
奇怪的是,我們應該自動爲你安裝一個winservice Raven.Server嗎? –
我注意到版本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