我刚开始玩 Microsoft 服务总线。现在我个人的挑战是我在下类后、在我自己的时间等这样做,这意味着我正在使用虚拟机和非域电脑。这些人都是工作组。
我取得了相当不错的成功,尤其是在我偶然发现此链接之后:Microsoft Service Bus 1.0 unable to communicate with a server outside the client's domain
这个家伙提供了一个非常需要的提升,让我过去能够使用命名空间来创建队列等。
然而,我去到 QueueClient.Send() 函数,我仍然得到(我解释了一下)。
"The token provider was unable to provide a security token while accessing 'https://Windows2008Server:9355/ServiceBusDefaultNamespace/$STS/Windows/'. Token provider returned message: ''.
上面链接中的相同代码是我用于消息工厂的代码。所以我的问题变成了,有人对如何通过这个发送工作有任何想法吗?
如果我能解决这个小问题,那么我就可以开始了解 Service Bus 真正能做什么。
非常感谢!
缺口
和以前一样的问题,把我的代码改成这样:
TokenProvider localUserTokenProvider = WindowsTokenProvider.CreateWindowsTokenProvider(connBuilder.StsEndpoints,new System.Net.NetworkCredential("LocalServer", "LocalPassword"));
MessagingFactory messageFactory = MessagingFactory.Create(connBuilder.GetAbsoluteRuntimeEndpoints(), localUserTokenProvider);
NamespaceManager namespaceManager = new NamespaceManager(connBuilder.GetAbsoluteManagementEndpoints(), localUserTokenProvider);
所以,看起来我仍然需要在他们两个上拥有相同的帐户......
最佳答案
如果您的客户端和您的服务器在不同的机器上,您可能会遇到证书信任问题。您必须使用已安装的服务器计算机导出服务总线服务器 CA,打开 Windows Server PowerShell 控制台的服务总线并使用 Get-SBAutoGeneratedCA cmdlet,然后将其导入客户端计算机的受信任根证书颁发机构存储中.
This page有更多关于如何导出/导入它们以启用远程客户端方案的信息。
关于servicebus - Windows 工作组上的 Microsoft 服务总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398665/