Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security MSMQ安全阻止来自Windows Server 2003中RPC通信的通信_Security_Msmq_Rpc - Fatal编程技术网

Security MSMQ安全阻止来自Windows Server 2003中RPC通信的通信

Security MSMQ安全阻止来自Windows Server 2003中RPC通信的通信,security,msmq,rpc,Security,Msmq,Rpc,我已经在运行WindowsServer2003的服务器中创建了一个消息队列,并创建了一个能够发送消息的客户端程序,但我无法将它们撤回。要发送消息,我使用以下代码(请注意,我使用的是事务队列): 为了获取信息,我尝试了以下方法,但没有成功: MessageQueueTransaction transaction = new MessageQueueTransaction(); try { transaction.Begin(); Messag

我已经在运行WindowsServer2003的服务器中创建了一个消息队列,并创建了一个能够发送消息的客户端程序,但我无法将它们撤回。要发送消息,我使用以下代码(请注意,我使用的是事务队列):

为了获取信息,我尝试了以下方法,但没有成功:

    MessageQueueTransaction transaction = new MessageQueueTransaction();
    try
    {
        transaction.Begin();
        MessageQueue queue = new MessageQueue(QUEUE_NAME);
        Message msg = queue.Receive(new TimeSpan(0, 0, 5), transaction);
        msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
        Console.WriteLine(msg.Label + " - " + msg.Body);
        transaction.Commit();
    }
    catch (Exception e)
    {
        transaction.Abort();
        Console.WriteLine(e.Message);
    }

在queue.Receive()调用中,我收到一个异常。关于这一点,我发现了很多类似的问题,我找到了三种可能的解决方案,但没有一种对我有效。我禁用了服务器上的防火墙,在注册表中创建了DWORD值,并且提供的解决方案之一似乎是针对Windows server 2008的。有人能帮我处理Windows Server 2003中MSMQ的远程呼叫吗?

您遇到了什么异常?您的计算机上是否运行分布式事务协调器(DTC)服务?
    MessageQueueTransaction transaction = new MessageQueueTransaction();
    try
    {
        transaction.Begin();
        MessageQueue queue = new MessageQueue(QUEUE_NAME);
        Message msg = queue.Receive(new TimeSpan(0, 0, 5), transaction);
        msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
        Console.WriteLine(msg.Label + " - " + msg.Body);
        transaction.Commit();
    }
    catch (Exception e)
    {
        transaction.Abort();
        Console.WriteLine(e.Message);
    }