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

C# ServiceBus.dll与.NET 4 Framework客户端配置文件,c#,.net,azure,servicebus,C#,.net,Azure,Servicebus,我尝试使用NetCPRelayBinding和azure服务总线使我的服务具有可伸缩性。我需要在服务器端和客户端都使用这个绑定。它是在Microsoft.ServiceBus.dll中实现的,所以我应该将这个.dll部署到客户端。但它需要.NETFramework的完整配置文件。但在客户端,只能使用.NETFramework客户端配置文件。我绝对肯定在客户端安装完整配置文件是个坏主意。 有什么解决办法吗 在客户端拥有完整的框架并不是一件坏事。客户机配置文件的大小并没有减小以删除“不安全”位,只是

我尝试使用NetCPRelayBinding和azure服务总线使我的服务具有可伸缩性。我需要在服务器端和客户端都使用这个绑定。它是在Microsoft.ServiceBus.dll中实现的,所以我应该将这个.dll部署到客户端。但它需要.NETFramework的完整配置文件。但在客户端,只能使用.NETFramework客户端配置文件。我绝对肯定在客户端安装完整配置文件是个坏主意。
有什么解决办法吗

在客户端拥有完整的框架并不是一件坏事。客户机配置文件的大小并没有减小以删除“不安全”位,只是使用频率较低的位。其逻辑是为分发应用程序的用户提供较小的下载量。这些天都有点多余

但是,没有合适的解决方法,甚至不考虑尝试从完整框架中提取所需的程序集,只需安装完整框架即可


我想知道是什么让您认为将完整客户端放在工作站上是一个坏主意。

首先,我建议您阅读以下讨论,了解完整客户端配置文件和客户端配置文件之间的区别:


基于此,您可以理解,大多数Windows Azure组件都依赖于使用完整配置文件,这主要是因为Web、WCF和其他服务是完整配置文件的一部分,而您确实需要使用完整配置文件来拥有这些库才能使其正常工作

在Microsoft.ServiceBus.dll中实现的服务总线客户端依赖于客户端配置文件中不可用的一系列功能,最明显的是,客户端配置文件中缺少承载服务的功能,这是中继功能的一个要求。如果要安装的应用程序仅为客户端,则可以使用常规NetTcpBinding与中继端点进行对话,但需要注意两个问题:

a) 您需要使用RelayClientAuthenticationType关闭中继安全性。无(请参阅),或者您需要获取并添加您自己的令牌,这是服务总线程序集为您所做的,没有这些代码会有点复杂,我认为我们还没有公开的示例


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

请在询问新问题之前接受更多答案。我的客户不是极客。没有人喜欢需要附加先决条件的软件。客户端配置文件更受欢迎,我有更多的机会在客户端机器上找到它。