如何更改NServiceBus中的MSMQ响应队列名称格式?

如何更改NServiceBus中的MSMQ响应队列名称格式?,msmq,nservicebus,Msmq,Nservicebus,我正在尝试通过VPN连接从家中的客户端访问工作服务器上的NServiceBus服务。消息到达服务OK,但响应队列名称的格式为 DIRECT=OS:MyHomePCName\private$\MyClientQueueName 回复消息位于服务器的传出队列中,可能是因为它无法解析MyHomePCName。在将消息发送到以下格式时,是否可以更改响应队列名称 DIRECT=TCP:MyHomeIPAddress\private$\MyClientQueueName 当然,我仍然存在为VPN连接发送IP

我正在尝试通过VPN连接从家中的客户端访问工作服务器上的NServiceBus服务。消息到达服务OK,但响应队列名称的格式为

DIRECT=OS:MyHomePCName\private$\MyClientQueueName

回复消息位于服务器的传出队列中,可能是因为它无法解析MyHomePCName。在将消息发送到以下格式时,是否可以更改响应队列名称

DIRECT=TCP:MyHomeIPAddress\private$\MyClientQueueName


当然,我仍然存在为VPN连接发送IP地址的问题,但我目前只是在测试,暂时不介意在客户端中对其进行硬编码。

NSB应该正确格式化它,如果您将“$queueName@$homeIpAddress”放入其中。下面是它使用的代码:

public static string GetFullPath(string value){

IPAddress ipAddress;
if (IPAddress.TryParse(GetMachineNameFromLogicalName(value), out ipAddress))
{
    return (PREFIX_TCP + GetFullPathWithoutPrefix(value));
}
return (PREFIX + GetFullPathWithoutPrefix(value));

}

如果您放入“$queueName@$homeIpAddress”,NSB应该正确格式化它。下面是它使用的代码:

public static string GetFullPath(string value){

IPAddress ipAddress;
if (IPAddress.TryParse(GetMachineNameFromLogicalName(value), out ipAddress))
{
    return (PREFIX_TCP + GetFullPathWithoutPrefix(value));
}
return (PREFIX + GetFullPathWithoutPrefix(value));

}

我无法将IP地址放在InputQueue配置元素上,因为在NServiceBus.Unicast.Transport.Msmq.MsmqTransport中有此签入:如果(machine.ToLower()!=Environment.MachineName.ToLower())抛出…您的权利,看起来像个bug,我会在GitHub上打开一个问题。它还应该检查IP。我不知道如何在GitHub上这样做。它在SourceForge上还活着吗?SourceForge正式死了,一切都在GitHub上。代码在NServiceBus/NServiceBus下,应该有一个问题选项卡。好的,谢谢。我被注册过程吓跑了,因为我没有创建存储库的计划!出现问题。我无法将IP地址放在InputQueue配置元素上,因为在NServiceBus.Unicast.Transport.Msmq.MsmqTransport中有此签入:如果(machine.ToLower()!=Environment.MachineName.ToLower())抛出…您的权利,看起来像个bug,我会在GitHub上打开一个问题。它还应该检查IP。我不知道如何在GitHub上这样做。它在SourceForge上还活着吗?SourceForge正式死了,一切都在GitHub上。代码在NServiceBus/NServiceBus下,应该有一个问题选项卡。好的,谢谢。我被注册过程吓跑了,因为我没有创建存储库的计划!提出的问题。