J'essaie d'obtenir la liste des files d'attente disponibles sur la machine distante. La machine est un Win2003R2 en mode Groupe de travail, et la machine cliente qui exécute le code est une machine Windows 8 utilisant le même nom de groupe de travail. Je reçois une exception lors de l'exécution du code suivant:Accès refusé sur MessageQueue.GetPrivateQueuesByMachine
var messages = MessageQueue.GetPrivateQueuesByMachine("Win2003SRV");
Et le message d'erreur est:
base {System.Runtime.InteropServices.ExternalException}: {"Access to Message Queuing system is denied."}
Message: "Access to Message Queuing system is denied."
MessageQueueErrorCode: AccessDenied
Je suis sûr qu'il a quelque chose à voir avec les autorisations sur Windows 2003, mais n'a pas pu trouver beaucoup. Le code fonctionne correctement avec un autre Win Server 2008 (mais en mode groupe de travail) et fonctionne également avec MSMQ local. Selon le MSDN page, cette fonction est prise en charge en mode groupe de travail, alors quel est le piège?
SOLVED:
Mon problème est avéré être que je n'ai pas MSMQ installé sur ma machine client! L'aide sur le lien m'a orienté dans la bonne direction, donc tout ce que je devais faire était d'installer MSMQ sur la machine client. Si vous regardez l'implémentation de GetPrivateQueuesByMachine, l'appel natif peut lancer une exception DllNotFoundException et c'est cette exception qui se traduit par ce message spécifique, donc cela devrait vous donner un indice sur ce qui est faux
Êtes-vous un administrateur local sur la machine 2003R2? –
oui, j'ai essayé administrateur local et domaine –