ServiceBus.dll与.NET 4 Framework客户端配置文件

时间:2012-05-14 15:06:06

标签: c# .net azure servicebus

我尝试使用netTcpRelayBinding和azure服务总线来使我的服务可扩展。我需要在服务器端和客户端都使用此绑定。它在Microsoft.ServiceBus.dll中实现,因此我应该将此.dll部署到客户端。但它要求.NET框架完整配置文件。但在客户端可以只有.NET框架客户端配置文件。而且我绝对相信在客户端安装Full Profile是一个坏主意。 有没有解决方法?

3 个答案:

答案 0 :(得分:1)

在Microsoft.ServiceBus.dll中实现的Service Bus客户端依赖于客户端配置文件中不可用的一系列功能,最明显的是客户端配置文件中缺少托管服务的能力,这是继电器功能。如果您要安装的应用程序只是客户端,则可以使用常规NetTcpBinding与中继端点通信,但需要注意两点:

a)您需要使用RelayClientAuthenticationType.None关闭中继安全性(请参阅http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.relayclientauthenticationtype.aspx)或者您需要获取并添加自己的令牌,这就是服务总线程序集为您所做的事情,这有点复杂没有那个代码,我认为我们还没有公开的样本。

b)你需要在ChannelFactory上指定两个地址 - EndpointAddress需要使用sb:前缀,而Via Uri需要使用net.tcp:前缀

答案 1 :(得分:0)

在客户端上拥有完整的框架并不是一件坏事。客户端配置文件的大小不会减小,以删除“不安全”位,只是不常使用的位。逻辑是为分发应用程序的人提供较小的下载。这些日子有点多余。

虽然没有合适的解决方法,甚至没有想过尝试从完整框架中提取所需的程序集,只需安装完整的框架。

首先感兴趣的是你认为把完整的客户端放在工作站上是一个坏主意。

答案 2 :(得分:0)

首先,我建议您阅读以下讨论,以了解完整配置文件和客户端配置文件之间的差异: Differences between Microsoft .NET 4.0 full Framework and Client Profile

基于此,您可以理解大多数Windows Azure组件依赖于使用完整配置文件,主要是因为Web,WCF和其他服务是完整配置文件的一部分,您确实需要使用完整配置文件来创建这些库事情有效。