我很难理解如何使用服务总线在同一URI上的两个不同主机上托管同一服务。从本质上讲,这就是我们托管服务的方式。
try
{
uri = ServiceBusEnvironment.CreateServiceUri(UriSchemeSb, this.serviceBusDescriptor.ServiceNamespace, servicePath);
host = new ServiceHost(serviceType);
host.AddServiceEndpoint(interfaceType, this.relayBinding, uri);
AddSharedSecretServiceBusCredentialBehavior(host, this.serviceBusDescriptor.IssuerName, this.serviceBusDescriptor.IssuerKey);
this.host.Open();
}
catch (SecurityTokenException exception)
{
this.host.Abort();
this.host = null;
}
可能有两个主机具有相同的servicePath,并且两个服务都托管在同一个URI上。
我以为会抛出一些异常,但事实似乎并非如此。我是否误解了什么,或者在托管的每个服务的URI中都有一个新生成的guid是预期的行为?
除了在托管服务之前测试URI之外,还有其他建议吗?
在这种情况下,您使用的是服务总线的负载平衡功能。您可以让多个主机托管同一个端点(每个端点最多20个侦听器),这在高负载场景(循环方式)或高可用性场景(一个主机停机,另一个继续处理)中可能是有益的希望这有道理?