我正在尝试连接到MSMQ并发送一些消息。不幸的是,项目中有“先前的艺术”,如何做到这一点,我应该模仿它。此前应用程序连接的方式如下:
if (MSMQ in workgroup mode)
{
connect via FormatName;
}
else
{
if (connected to network)
connect via PathName;
else
connect via GUID (as FormatName)
}
这一切真的有必要吗?不应该使用正确的FormatName来连接队列吗?
此外,通过调用在我的MSDN中标记为过时的NetGetDCName()
来检测“连接到网络”,这让我对应用程序以这种方式连接的原因感到困惑。
TL; DR :以上是连接的逻辑:错误,过时还是正确?我可以在所有情况下使用FormatName连接来简化这个吗?
答案 0 :(得分:4)
该代码通过查找域控制器来确定域是否可用。如果域不可用,则假定MSMQ在非域 - 或工作组 - 模式下工作。
域模式允许使用公共队列和路径名寻址。 工作组模式使用私有队列和格式名称寻址(尽管这是一种简化)。
因此,代码确实正在确定要使用的消息寻址模式。
如果您可以在所有情况下使用formatname,则没有足够的有关环境的信息。
干杯
John Breakwell