2012-06-08 2 views
3

J'ai récemment mis à niveau ma solution éditeur/abonné vers NServiceBus version 3.2.2 à l'aide de Nuget. Mon éditeur et mon abonné NServiceBus sont tous deux auto-hébergés.Mise à niveau vers l'exception NServiceBus 3.2.2 lors du démarrage du noeud final

Code Editeur:

Je commence l'éditeur à l'aide NServiceBus NServiceBus.Host.exe (debug l'action de démarrage - démarrer le programme externe dans la propriété du projet).

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 
    { 
    } 
} 

je suis tombé sur l'erreur suivante lors de l'exécution de l'éditeur:

Exception lorsque critère de départ, erreur a été enregistrée . Raison: Une exception a été levée lors de l'appel du constructeur 'Void .ctor (Raven.Client.IDocumentStore)' sur le type 'RavenTimeoutPersistence'.

StackTrace:

à NServiceBus.Hosting.GenericHost.Start() dans d: \ BuildAgent-03 \ work \ nsb.master22 \ src \ hébergement \ NServiceBus.Hosting \ GenericHost.cs: ligne 45 à NServiceBus.Hosting.Windows.WindowsHost.Start() dans d: \ BuildAgent-03 \ work \ nsb.master22 \ src \ hébergement \ NServiceBus.Hosting.Windows \ WindowsHost.cs: ligne 56 dans NServiceBus.Hosting.Windows.Program . <> c_ DisplayClass8.b _4 (service WindowsHost) dans d: \ BuildAgent-03 \ work \ nsb.master22 \ src \ hébergement \ NServiceBus.Hosting.Windows \ Program.cs: ligne 95 à 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 (service TService) à d: \ dev \ open-source \ topshelf \ src \ Topshelf \ \ IsolatedServiceControllerWrapper.cs internes: ligne 65 à Topshelf.Internal.ServiceController 1.<.cctor>b__1(ServiceController 1 ms) dans d: \ dev \ open-source \ topshelf \ src \ Topshelf \ Interne \ ServiceController.cs: ligne 35 à Magnum.StateMachine.LambdaAction 1.Execute(T instance, Event event, Object parameter) in :line 0 at Magnum.StateMachine.EventActionList 1.Exécute (T stateMachine, Event event, Object parameter) dans: line 0

Qu'est-ce qui pourrait causer cette erreur?
Quelqu'un peut-il me dire ce qui ne va pas avec ma configuration de point de terminaison?

Ma solution a bien fonctionné avec une version antérieure de NServiceBus (pré version 3.0).

Mise à jour: Voici le message d'exception interne: « Impossible de se connecter au serveur distant »

Le serveur est lancé automatiquement par Raven NServiceBus? Il semblerait qu'il ne fonctionne pas sur ma machine ...

Mise à jour Eh bien, pour une raison quelconque le service RavenDB ne fonctionnait pas sur ma machine - bien qu'il soit configuré pour démarrer automatiquement. Ma solution fonctionne correctement maintenant. Je suppose que j'ai dû apprendre à propos du RavenDB à la dure :).

Est-ce que quelqu'un a eu des problèmes pour exécuter le service RavenDB?

Mise à jour

Maintenant que j'ai et courir mon service, j'essayer de l'exécuter sur une autre machine. Les dossiers msmq ne sont pas créés, et j'obtiens une erreur que le RavenDB n'est pas disponible. En fait, le service RavenDB n'est pas installé après avoir exécuté ma solution sur une machine Windows OS différente. J'ai essayé d'exécuter le "RunMeFirst.bat" qui a posté avec la version 3.2.2. Cependant, le fichier bat tente d'installer une extension avec Visual Studio. Une autre erreur est signalée si Visual Studio est installé, mais l'extension Nuget n'est pas installée.

Existe-t-il un meilleur moyen d'activer NServiceBus.Host.exe pour installer le serveur RavenDB et les dossiers msmq sans qu'une instance de Visual Studio ne soit installée sur la machine Windows OS?

Mise à jour

Wow, la plupart des mises à jour jamais! J'ai ajouté la classe suivante à mon projet d'éditeur qui a créé avec succès les dossiers 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) 
     { 
     } 
    } 

Cette nouvelle classe qui implémente l'interface IWantCustomIntialization semble fonctionner à merveille. Cependant, j'ai encore du mal à mettre à jour mon éditeur pour installer le RavenDB sur la machine hôte Windows. Je sais qu'il existe une ligne de commande qui peut faciliter cela, mais y a-t-il un autre moyen? J'ai essayé d'implémenter l'interface INeedToInstallInfrastructure, mais je ne trouve aucun exemple. Quelqu'un a-t-il une idée?

Répondre

2

Nous courons que les programmes d'installation si vous: 1. Installez le point final en tant que service Windows (si vous travaillez dans le profil de production => la valeur par défaut) 2. Exécuter en mode débogage 3. Exécuter dans l'intégration/Lite profils

Alors que expliquerait pourquoi les files d'attente ne sont pas créés (en supposant aucune de ce qui précède est vrai pour vous?)

+0

vous l'avez, aucune de ces était vrai. J'ai été capable d'utiliser NServiceBus.Host32.exe/installInfrastructure (à partir du dossier binaires) pour installer RavenDB sur mon disque local. Ensuite, j'ai utilisé c: \ Windows \ Microsoft.Net \ Framework \ v4.0.30319 \ InstallUtil "c: \ program files \ NServiceBus.Persistence \ Raven.Server.exe" pour installer le service Windows RavenDB. Mon éditeur a bien fonctionné après cela. Hourra! On dirait que j'ai besoin de revenir en arrière et revoir les profils NServiceBus. Merci pour votre aide Andreas! – EnLaCucha

+0

Étrange, nous devrions installer comme un winservice Raven.Server pour vous automatiquement? –

+0

J'ai remarqué que le nouveau fichier "RunMeFirst.bat" pour la version 3.2.2 a une dépendance sur le gestionnaire d'extensions Visual Studio et Nuget. Comme la machine de mon testeur de logiciel n'a pas d'instance de Visual Studio, j'avais besoin d'un moyen d'installer l'infrastructure. La ligne de commande NServiceBus.Host32.exe/installInfrastructure n'a pas installé et démarré Raven.Server automatiquement. Cela aurait été bien d'avoir l'auto-installation pour Raven.Server. Ce lien montre quelqu'un d'autre avec un problème similaire? http://tech.groups.yahoo.com/group/nservicebus/message/14190 Was/installInfrastructure a-t-il été modifié pour la version 3.2.2? – EnLaCucha

Questions connexes