1

Nouveau sur Visual Studio et nouveau sur C#. Création d'un service Windows C# appelé Messagerie transactionnelle dans Visual Studio 2017, qui dépend d'un projet appelé Messagerie sortante. Quand je commence le débogage et essayer d'ajouter des points d'arrêt sur les fichiers de messagerie sortant, je reçoisC# Visual Studio Service Débogage "Le point d'arrêt ne sera pas actuellement touché Aucun symbole n'a été chargé pour ce document"

"The breakpoint will not currently be hit. No Symbols have been loaded for this document"

D'après ce que je peux dire, VS est seulement incapable de charger les fichiers pdb pour: log4net.dll, Castle.Windsor.dll, et Castle.Core.dll. Je n'ai pas ce problème avec l'ajout de points d'arrêt aux fichiers dans le service de messagerie transactionnelle. Je n'ai pas été en mesure d'identifier des modèles de comportement ou une correction permanente, donc à ce stade, l'erreur semble aléatoire. Une minute, je pense avoir trouvé une solution, et quand j'essaie d'utiliser ce correctif sur la même erreur plus tard dans la journée, je n'ai pas de chance. Je me méfie d'une panne d'électricité récente qui a fermé mon ordinateur de manière inattendue, car il semble que les fichiers pdb peuvent être mis en cache, mais on m'a dit que ce serait un long plan.

étapes I suivre pour déboguer le service:

  1. Arrêter le service transactionnelles de messagerie via applet services Windows
  2. Désinstaller transactionnelles service de messagerie via la ligne de commande VS en utilisant installutil /u TransactionalMessaging.exe dans le dossier de débogage
  3. Clean transactionnelles Messaging Solution dans Visual Studio
  4. Création d'une solution de messagerie transactionnelle dans Visual Studio (à un moment donné, une solution consistait à cliquer avec le bouton droit de la souris sur chaque aspect de la solution dans l'explorateur de solution et à compiler t individuellement)
  5. Installez le service de messagerie transactionnelles via la ligne de commande VS en utilisant installutil TransactionalMessaging.exe dans le dossier de débogage
  6. Démarrer le service de messagerie transactionnelles via Windows applet de service
  7. Dans VS, Debug> attacher à traiter> transactionnelles Messaging
  8. Essayez d'ajouter des points d'arrêt aux fichiers dans le service de messagerie sortante, ce qui me renvoie l'erreur ci-dessus.

étapes que j'ai essayé de résoudre cette erreur:

  1. débogage> Fenêtres> Modules pour charger manuellement les symboles de chaque module (pdb pour log4net.dll, Castle.Windsor.dll, et le château. core.dll ne peut pas être trouvé) picture of modules
  2. supprimer complètement bin et obj dossier entre les étapes 2 et 3 ci-dessus
  3. projet> propriétés du projet> Construire> Avancé> Informations de débogage: complet (pour les deux transactionnelles de messagerie et messagerie sortante)

Je ne suis pas sûr s'il s'agit d'un manque de compréhension de VS, C# ou de la base de code. Toute idée est appréciée, je suis passé le stade googling et poster une nouvelle question en dernier recours.

+0

Pourriez-vous trouver les fichiers dll ou le fichier pdb sur votre machine locale? Veuillez activer le serveur de symboles sous TOOLS-> Options-> Débogage-> Symboles. En outre, si ces assemblys sont installés à partir du paquet Nuget gérer? Dans ce cas, assurez-vous que vous avez installé la version correcte/adaptée. –

Répondre

2

J'obtiennent habituellement ce message quand j'ai changé le code dans un projet A et oublié de le compiler.
L'autre projet B, qui référence le projet A, a le code source A à jour sur l'écran, mais a démarré avec un assembly obsolète de A. Il ne peut donc pas activer les points d'arrêt car le code ne correspond pas à l'assembly.

Il y a une chose qui à mon avis est un bug et une douleur dans le cul, mais selon MS est par la conception (je leur ai demandé):
Depuis Visual Studio 2015, la compilation du projet B ne PAS inclure automatiquement les assemblages référencés modifiés, qui dans cet exemple est l'assembly A. Il existe une copie locale de A quelque part dans B, qui est utilisé à la place. Même résultat que ci-dessus: code à jour, mais assemblage désuet. Au lieu de compiler, vous devez le reconstruire!

Il y a une autre une chose:
Vous devez compiler pour le mode DEBUG. En mode Release, les paramètres de projet par défaut ne permettent pas un débogage correct, comme dans le cas de VS 2008 par exemple.

1

Vous ne pouvez pas joindre le débogueur, car vous n'avez pas le droit de le faire. Vous pouvez obtenir ce droit seulement retourner un certain bit dans le registre.

See my earlier Answer:

Also start VisualStudio as Administrator and allow, that a process can automatically be debugged by a different user:

reg add "HKCR\AppID\{E62A7A31-6025-408E-87F6-81AEB0DC9347}" /v AppIDFlags /t REG_DWORD /d 8 /f 
+0

où dois-je entrer cette commande? J'ai essayé d'entrer dans l'invite de commande Visual Studio dans le dossier de débogage de la solution sans la chance – mel

+0

@mel, voulez-vous dire que vous voulez exécuter la ligne de commande reg dans le CMD? –

+0

oui, il doit être entré dans CMD-shell. Vous pouvez également utiliser regedit.exe et rechercher la clé manuellement. – wotanii