0

I try to use netTcpRelayBinding and azure service bus to make my service scalable. I need to use this binding both on server and client sides. Its implemented in Microsoft.ServiceBus.dll so I should deploy this .dll to clients. But it requests .NET framework Full Profile. But on client side can be only .NET framework Client Profile. And I'm absolutlly sure that installing Full Profile on client side is a bad idea. Is there any workaround?

Sergey
  • 171
  • 1
  • 1
  • 14

3 Answers3

1

The Service Bus client implemented in Microsoft.ServiceBus.dll has a dependency on a range of capabilities that are not available in the Client Profile, most notably the ability to host services is absent from the client profile, which is a requirement for the Relay to function. If the applications you want to install are ONLY clients, you can use the regular NetTcpBinding to talk to relay endpoints with two caveats:

a) You need to turn off Relay security using RelayClientAuthenticationType.None (see http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.relayclientauthenticationtype.aspx) OR you need to acquire and add your own token, which is what the Service Bus assembly does for you and that's a bit complicated without that code and I don't think we have a public sample for that yet.

b) You need to specify two addresses on the ChannelFactory - the EndpointAddress needs to use the sb: prefix and the Via Uri needs to use the net.tcp: prefix

Clemens Vasters
  • 2,666
  • 16
  • 28
0

It is not a bad thing to have the full framework on the client. The client profile is not reduced in size to remove "unsafe" bits, just less frequently used bits. The logic was to have a smaller download for people who distribute their apps. It's all a bit redundant these days.

There isn't a suitable work around though and don't even think of trying to extract the required assemblies from the full framework, just get the full framework installed.

Would be interested in what makes you think putting the full client on a workstation was a bad idea in the first place though.

Ian
  • 4,885
  • 4
  • 43
  • 65
  • My clients are not geeks. Nobody likes software which requires additional prerequisites. Client profile is more popular and I have much more chances to find it on client machine. – Sergey May 14 '12 at 15:41
0

First I would suggest reading the following discussion to understand the differences between full and client profiles: Differences between Microsoft .NET 4.0 full Framework and Client Profile

Based on that you can understand that most of Windows Azure components are dependent on using Full profile mostly because of Web, WCF and other services which are part of full profile and you really need to use Full profile to have those libraries to make things work.

Community
  • 1
  • 1
AvkashChauhan
  • 20,495
  • 3
  • 34
  • 65