今天在虚拟机上调程序的时候,将消息队列的地址配置成了127.0.0.1,结果总是报下面的错误:
[2011-04-19 10:53:53,331 ERROR StartProcess]
-- Excute InitMessageQueue Error! Error :调用的目标发生了异常。
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> **.OperateErrorException: 获取MSB反馈的消息队列失败,错误信息为**.OperateErrorException: 启动监听失败。队列路径:msbresponse;主机:msbresponse;名称:rockee ---> System.Messaging.MessageQueueException: 队列不存在,或您没有足够的权限执行该操作。
在 System.Messaging.MessageQueue.MQCacheableInfo.get_ReadHandle()
在 System.Messaging.MessageQueue.ReceiveAsync(TimeSpan timeout, CursorHandle cursorHandle, Int32 action, AsyncCallback callback, Object stateObject)
在 System.Messaging.MessageQueue.BeginReceive()
在 **.SystemService.Mq.MSMessageQueueMgr.Listen(MSMQCfgInfo cfg, RecievedMsgOKEventHandler handle)
--- 内部异常堆栈跟踪的结尾 ---
在 **.SystemService.Mq.MSMessageQueueMgr.Listen(MSMQCfgInfo cfg, RecievedMsgOKEventHandler handle)
在 **.SystemService.Mq.MSMQQueue.StartListen(Type[] arrRequireType)
在 **.AppServer.MSBService.MSBInvokerClass.InitMessageQueue()
在 **.AppServer.MSBService.MSBInvokerClass.InitMessageQueue()
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
检查了消息队列服务,存在并且有everyone权限,再用消息队列测试工具MSMQTracer 测试,照样能读写,于是抱着试验的态度将127.0.0.1换成了本机对外IP,结果访问成功;
将该问题记录在这里,以放置以后同样问题的出现;