Service Bus for Windows Server 初用问题小结

Service Bus 1.0 安装说明 中演示了Service Bus for Windows Server的安装过程,但是在使用过程中,Service Bus 也有一些注意事项,下文中会讲解几点

1.示例下载

http://servicebus.codeplex.com 中有Service Bus的使用示例,不过仅是Azure版本的。

2.程序集引用

引用Microsoft.ServiceBus.dll可以在"X:\Program Files\Service Bus\1.0\Microsoft.ServiceBus.dll"找到,当然,也可以使用NuGet来获取Windows Azure Service Bus:

 

3.关于连接

Service Bus for Windows Server 在代码编写上的主要不同主要集中在ConnectionString的编写上.在Service Bus for Windows Azure中通常使用以下代码来进行NamespaceManager的构造:

   1:  TokenProvider credentials = TokenProvider.CreateSharedSecretTokenProvider(Sender.IssuerName, Sender.IssuerKey);
   2:  Uri serviceUri = ServiceBusEnvironment.CreateServiceUri("sb", Sender.ServiceNamespace, string.Empty);
   3:  NamespaceManager namespaceClient = new NamespaceManager(serviceUri, credentials);

不过在Service Bus for Windows Server 中,可以使用ServiceBusConnectionStringBuilder类来构造ConnectionString:

   1:  string ServerFQDN = "hostname";
   2:  int HttpPort = 9355;
   3:  int TcpPort = 9354;
   4:  string ServiceNamespace = "NameSpace";
   5:  ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder();
   6:  connBuilder.ManagementPort = HttpPort;
   7:  connBuilder.RuntimePort = TcpPort;
   8:  connBuilder.Endpoints.Add(new UriBuilder() {Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace}.Uri);
   9:  connBuilder.StsEndpoints.Add(new UriBuilder() {Scheme = "https", Host = ServerFQDN, Port = HttpPort, Path = ServiceNamespace}.Uri);
  10:  NamespaceManager namespaceClient = NamespaceManager.CreateFromConnectionString(connBuilder.ToString());

这样就可以连接到本地的ServiceBus服务并使用Queue及Topic了

3.远程访问

防火墙注意打开 9002-9004 9354-9356

并且NamespaceManager、MessagingFactory初始化时要指定TokenProvider

官司方文档中说可以通过证书或IssueUser来验证,但是我这里都没有尝试成功。只通过OAuth验证通过了。

   1:  var  tokenProvider = TokenProvider.CreateOAuthTokenProvider(
   2:                 new[] { new UriBuilder() { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace, Port = HttpPort }.Uri },
   3:                 new NetworkCredential("windows user", "windows user password"));
   4:   namespaceClient.Settings.TokenProvider = tokenProvider;

至于 MessagingFactory可以通过以下方法获得带有TokenProvider的实例

   1:  var runtimeAddress = string.Format("sb://{0}:{2}/{1}/", ServerFQDN, ServiceNamespace, TcpPort);
   2:  var factory = MessagingFactory.Create(runtimeAddress,
   3:                 new MessagingFactorySettings()
   4:                 {
   5:                     TokenProvider =  tokenProvider,
   6:                     OperationTimeout = TimeSpan.FromMinutes(30)
   7:                 });
时间: 2024-10-15 09:12:17

Service Bus for Windows Server 初用问题小结的相关文章

Windows Server 2003 Service Pack 2 for x86 & x64 正式版发布_常用工具

微软正式发布了Windows Server 2003 Service Pack 2,支持以下版本Windows升级:* Windows Server 2003, x64 Editions* Windows Server 2003 R2, x64 Editions* Windows Server 2003 Compute Cluster Edition with Service Pack 1* Windows Server 2003 Storage Server R2, x64 Editions*

Windows Server 2003 R2 Beta 2将公测_Windows2003

近期,关于Longhorn,X64系统的新闻不断涌现.在上周,Windows Server 2003 SP1发布了,而Windows Server 2003的下一个更新版也即将开始公测. 到今年末,Windows Server用户将有望看到Windows Server 2003的下一个重要更新版本(代号"R2")."R2"版在SP1的基础上,还增添了独有功能,它们都支持选择性安装. Windows Server 2003 "R2"发布初期,受So

适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日

https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net-framework-4-5-2-fo 概要 此安全更新修复了 Microsoft .NET Framework 中的一个漏洞.当 Microsoft .NET Framework 处理不受信任的输入时,此漏洞可能允许远程执行代码. 在使用 .NET Framework 的软件中,成功利用此漏洞的攻

分析Windows Server 2008中Terminal Service组策略

因为这篇文章写于2008 RC1版本的时候,所以所有内容以RC1版本为准.因为还没有拿到过正式版,故正式版中的改变,不在下文的讨论中. 因为公司一直在从事远程http://www.aliyun.com/zixun/aggregation/14345.html">数据处理业务,所以当我刚刚拿到Windows Server 2008的时候,关注点立刻就投入到新版本的Terminal Service.一般来说,当建立Terminal Service的时候,我们通常会通过设置一些组策略来限制用户在

微软Windows Azure Service Bus 2.0活动和用户组会议公告

Service Bus http://www.aliyun.com/zixun/aggregation/29809.html">Explorer 是一种可在 MSDN 代码库上使用的工具,开发人员和系统管理员可利用该工具管理.测试.调试和监控在 Windows Azure Service Bus 命名空间中运行的队列.主题.订阅和中继服务.此工具的新版本可充分利用 Windows Azure Service Bus 2.0 引入的新功能: 连接和实体级别的 共享访问签名 授权规则 指标和监

Windows Azure AppFabric 入门教学系列 (二):一个简单的Service Bus例子

本文是Windows Azure AppFabric入门教学的第二篇文章,可以说是正式的开始学习AppFabric了.为了使后续的学习顺利进行请确保已浏览本教程的第一篇文章,并以按照该文完成了AppFabric项目和命名空间的创建.我们知道,AppFabirc由Service Bus 和 Access Control Service组成.本篇教学以一个简单的Echo程序来向大家简单的介绍一下Service Bus,让大家能有一个初步了解. 该程序演示了Client向Service发送消息,ser

Windows Server 2012安装初体验_win服务器

最近微软先行放出发布了下一代Windows服务器版本windows server 2012,笔者下载下来测试安装了,相对于windows server 2008,确实有许多细节方面的改进.我是通过vmware workstation 8来安装windows server 2012的,由于安装的时候无法选择2012只好选择windows server 2008 64位版本的.启动界面,由前一个版本的"Betta鱼"更换为"Windows" 可以看到,名称已经变成Win

Windows Server 8和Azure的战略合作

如果Windows的商店和IT经理们之前.对于Windows Server 8以及Azure作为公司的云策略基本构件有所疑虑,那么现在这种想法也该撤销了. 上周的BUILD大会,微软的高层放出了爆炸性的消息:Server 8以及Azure将会产生紧密的关系,这将稳定大部分公司的企业平台和各种应用. 他们还一致地推出了云平台作为针对开发者和IT商店的可扩展的且高度可用选项,强调了微软还在服务器产品中的创建功能,这些产品由企业引擎通知且受管理托管的服务. IDC的分析师Al Gillen对于Azur

微软进攻策略:Windows Server 8和Azure云是否强强联手?

如果Windows商店的IT经理们之前对Windows Server 8和Azure作为公司云策略的基本构件有怀疑,那么现在这种怀疑也该消除了. 在上周的BUILD大会上,微软高层放出了爆炸性消息:Server 8和Azure将拥有紧密的关系,这将稳固大部分公司的企业平台及应用. 他们还一致地推出云平台作为针对开发者和IT商店的可扩展的且高度可用的选项,强调微软还在服务器产品中创建功能,这些产品由企业引擎通知且管理托管服务. IDC的分析师Al Gillen对于Azure与Windows Ser