Bonjour,

J'utilise des queues MSMQ pour faire transiter des messages de manière sûre. Lors de mes tests, pas de souci, mes queues sont locales et tout se passe bien.

Quand vient le déploiement sur plusieurs machines, je ne parviens pas à me connecter à la queue publique d'une machine distante (Queue not found ou refus de connexion pour raison de droits même si l'utilisateur courant est administrateur de la machine distante) :
System.Messaging.MessageQueueException (0x80004005): Accès au système Message Queuing refusé.
à System.Messaging.MessageQueue.Create(String path, Boolean transactional)
Je n'ai jusqu'ici trouvé aucune documentation ni aucun exemple d'utilisateur de queue publique (tout le monde dit "c'est pareil" mais le fait est que non). Avez-vous des pistes ou des références sur le sujet ?

Merci d'avance !

La configuration de mon application :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<configuration>
  <appSettings>
    <add key="QueueName" value="MaMachine\MaQueue"/>
  </appSettings>
 
  <system.serviceModel>
    <bindings>
      <netMsmqBinding>
        <binding name="msmqConfig"
                 maxRetryCycles="2"
                 retryCycleDelay="00:05:00">
          <security mode="None" />
        </binding>
      </netMsmqBinding>
    </bindings>
 
    <client>
      <endpoint
          address="net.msmq://MaMachine/MaQueue"
          binding="netMsmqBinding"
          bindingConfiguration="msmqConfig"
          contract="MonAppli.IMonInterface" />
    </client>
  </system.serviceModel>
 
</configuration>

Extrait de code :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
string queue = ConfigurationManager.AppSettings["QueueName"];
if (!MessageQueue.Exists(queue)) {
  _logger.Info(String.Format("Création de la queue {0}.", _queue));
  MessageQueue.Create(queue, true);
}