0

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

4

3 回答 3

1

在 Microsoft.ServiceBus.dll 中实现的服务总线客户端依赖于客户端配置文件中不可用的一系列功能,最值得注意的是客户端配置文件中缺少托管服务的能力,这是中继的要求功能。如果您要安装的应用程序仅是客户端,您可以使用常规 NetTcpBinding 与中继端点通信,但有两个注意事项:

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

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

于 2012-05-14T17:47:40.823 回答
0

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

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

会感兴趣的是什么让您认为将完整的客户端放在工作站上首先是一个坏主意。

于 2012-05-14T15:15:56.850 回答
0

首先,我建议阅读以下讨论以了解完整配置文件和客户端配置文件之间的区别: Microsoft .NET 4.0 完整框架和客户端配置文件之间的差异

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

于 2012-05-14T16:27:13.313 回答