Я пытаюсь преобразовать пример кода Microsoft Visual Basic / C ++ в Python 3. Он отправляет сообщение MSMQ, которое запрашивает ответ в очереди ответов.
Пример здесь:
https://msdn.microsoft.com/en-us/library/ms705720(v=vs.85).aspx
import win32com.client
import os
computer_name = os.getenv('COMPUTERNAME')
strdestformatname = "direct=os:" + computer_name + "\\PRIVATE$\\python_in"
strrespformatname = "direct=os:" + computer_name + "\\PRIVATE$\\python_out"
dest_msmq = win32com.client.Dispatch("MSMQ.MSMQDestination")
resp_msmq = win32com.client.Dispatch("MSMQ.MSMQDestination")
dest_msmq.FormatName = strdestformatname
resp_msmq.FormatName = strdestformatname
msg = win32com.client.Dispatch("MSMQ.MSMQMessage")
# This next line creates
# Member not found
# pywintypes.com_error: (-2147352573, 'Mitglied nicht gefunden.', None, None)
msg.ResponseDestination = resp_msmq
msg.Label = "Test Message: Response"
msg.Send(DestinationQueue = dest_msmq)
Я создал очередь MSMQ "python_in" и "python_out" на моем компьютере.
Эти работы. Если я уберу строку:
msg.ResponseDestination = resp_msmq
сообщение появляется в очереди "python_in".
Я также отправляю его прямо в очередь "python_out".
Сообщение об ошибке:
pywintypes.com_error: (-2147352573, 'Mitglied nicht gefunden.', Нет, Нет
(= Участник не найден)
Ниже приведено изображение, показывающее, как приходит сообщение при комментировании кода очереди ответа. Без очереди ответа, конечно.
Некоторая дополнительная информация:
Я тестирую это на Win7 professional с 32-битным Python 3.6.5 и последней установленной pywin32 (версия 223).
Информация о том, как сделать MSMQ без ответа, находится здесь:
http://gouthamanbalaraman.com/blog/sending-msmq-messages-python.html
Кто-то утверждает, что он получил аналогичную вещь для работы (установка ответа для
подтверждение), здесь, с источником:
https://www.experts -exchange.com / вопросы / 21207798 / Python-и-MSMQ.html
Я также заставил его работать в IronPython несколько лет назад, но это Python 2
Как создать новое сообщение MSMQ в IronPython с меткой, очередью ответов и другими свойствами