MSMQ远程专用:一次使用后不支持FormatNameOperation

本文关键字:一次 FormatNameOperation 不支持 程专用 专用 MSMQ | 更新日期: 2023-09-27 18:01:00

我是MSMQ的新手,怀疑我的队列配置错误或通过编程(这是一个词吗?(导致它们挂断。

当一切开始时,我可以发送一条信息,效果非常好。我可以看到(在那台机器上通过mmc(远程机器队列中的消息。然后我去访问它,我得到了我的UnsupportedFormatNameOperation错误。如果我试图发送另一条消息,我会在几秒钟前的send方法中收到同样的错误。

更令人沮丧的是,我的捕获是NOT获取异常,所以我没有意识到并在其他地方寻找(读取浪费时间(,直到我在调试器中探索队列对象。

现在,如果我在远程重置消息服务,我会丢失队列中的消息,但仍然会收到相同的错误。若我重新启动同样的结果。

在本地(开发机器(上,如果我重置消息服务,我仍然会收到错误。如果我重新启动,某些东西会被回收,我可以再次发送一条消息。

此外,在重新启动开发机器并在第一次运行时浏览队列对象后,我发现在first时收到了错误,但它仍然发送消息。

所以我显然做错了什么,但对什么一无所知。

这是我的发送代码:

private void SendLoginMessage(...bunch of parms)
        {
            //hardcoded path? yup!!
            MessageQueue msmq = new MessageQueue(@"FormatName:DIRECT=OS:W2K8R2_SQL2K8R2'private$'best_simulator");
            try
            {
                LoginStatusMessage LgnMsg = new LoginStatusMessage()
                {
                    ...assign parms to my 
                };
                msmq.Send(LgnMsg);
            }
            catch (MessageQueueException msmqex)
            {
                MessageBox.Show(msmqex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                msmq.Close();
            }
        }

MSMQ远程专用:一次使用后不支持FormatNameOperation

UnsupportedFormatNameOperation的描述是

不支持为指定格式名称请求的操作。

当指定的格式名称不支持请求的操作时,消息队列返回此错误。操作包括尝试通过指定直接格式名称来打开队列以接收消息。

所以我想你的问题可能在于你的接收代码。