Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Service Bus for Windows Server 1.1 Support #342

Closed
petedavis opened this issue Sep 6, 2015 · 29 comments
Closed

Service Bus for Windows Server 1.1 Support #342

petedavis opened this issue Sep 6, 2015 · 29 comments
Labels

Comments

@petedavis
Copy link
Contributor

@petedavis petedavis commented Sep 6, 2015

This is just a thought that I had, but it should be possible to add support for Service Bus for Windows Server reasonably simply as the API is advertised as being compatible with Azure Service Bus, so hopefully most of the work is done.

https://www.nuget.org/packages/ServiceBus.v1_1/

Not too sure if there is a clever way to reuse code between the two implementations if they are compatible. Maybe a multi targeting style project setup?

Since dropping the support of MSMQ, this might give a good alternative for those that want to use service bus in house and not prepared to install RabbitMQ, and can be setup in windows desktops almost as easily as MSMQ was.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Sep 13, 2015

Would the transport actually have to change to work with Service Bus for Windows? I had a hell of time trying to get SW4W installed and running on a server, it is extremely particular.

@suddenelfilio

This comment has been minimized.

Copy link

@suddenelfilio suddenelfilio commented Oct 13, 2015

Hey @petedavis

it will work but you need to create Shared Access Signature Token for your namespace (https://msdn.microsoft.com/en-us/library/dn440944.aspx) and then when initializing the MT bus create a SASTokenProvider

//Trust all SSL certificates :DEVELOPMENT ONLY!!!!
System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);

var bc = Bus.Factory.CreateUsingAzureServiceBus(cfg => {
    var host = cfg.Host(new Uri("sb://<HOST>/<NAMESPACE>"), h => {
         h.OperationTimeout = new TimeSpan(0, 0, 15);
        h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("myrule", "IUAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTA=");
    });

    cfg.ReceiveEndpoint(host, "SampleMessageQueueMT", c => {
        c.Consumer(() => new SampleMessageConsumer());
    });
});

bc.Start();
@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Nov 28, 2015

Okay so I added support for a connection string, instead of requiring the SAS token. It will be in .16 - should resolve this issue.

@suddenelfilio

This comment has been minimized.

Copy link

@suddenelfilio suddenelfilio commented Nov 30, 2015

Not sure if it will work then since Masstransit transport should use the sw4w library instead of the windows azure SB library

@petedavis

This comment has been minimized.

Copy link
Contributor Author

@petedavis petedavis commented Nov 30, 2015

Currently the APIs are compatible. Historically they have changed at a different rate and they could become incompatible again in the future. A specific version for windows could be implemented when that time occurs, but right now that would just add more code to maintain?

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Dec 21, 2015

Has anyone tested the latest using the connection string approach? Or does anyone have a Service Bus for Windows I can connect to for testing?

@petedavis

This comment has been minimized.

Copy link
Contributor Author

@petedavis petedavis commented Dec 22, 2015

I havent tested it yet. I will have to reinstall Service Bus for Windows, which is not an ideal experience.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 4, 2016

Has anyone got this to work? I am using Service Bus for Windows Server 1.1 but would like to use a popular, standard framework like MT. In my opinion, SBWS 1.1 is one of the easiest installation experiences out there.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Mar 4, 2016

If I had a connect string to a SBWS instance, I would be happy to test it and fix any issues. The connection string method of configuration should work for using SBWS, I just need to verify with a working SBWS cluster.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Mar 5, 2016

Or even a working VMware image, I could use that to test as well. Something...

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 6, 2016

SBWS is easy to install on a workstation. All you need for a working SBWS instance is a Windows 7 or above machine and a working SQL 2012+ Express or above instance (local or not). Use Web Platform Installer searching on Service Bus 1.1. There are 2 entries for Windows Azure Pack (1 security update). After, execute the Service Bus configuration to create the databases and services and default Namespace. Get the SB connect string from PowerShell (Get-SBAuthorizationRule -NamespaceName). You can use Service Bus Explorer 2.1 or create some Queue or Topics from powershell or C#.

You can't use the current Azure SDK for this. The API has changed. That is why we have to use Service Bus Explorer 2.1. There is an active NuGet client package at:https://www.nuget.org/packages/ServiceBus.v1_1/.

The other requirement for a client is the certificate installation for SSL. If installing on a workstation this is handled automatically.

.NET 4.6 breaks SBWS 1.1. The KB is here https://www.microsoft.com/en-us/download/details.aspx?id=49496 . The new Azure Service Fabric also breaks SBWS.

To me this is easy since I have performed the process many times. If I had VMWare I would create you an image. I have not attempted anything virtual on Windows 10 at all.

@petedavis

This comment has been minimized.

Copy link
Contributor Author

@petedavis petedavis commented Mar 6, 2016

Thanks for that. Explains why I cannot get it to work.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 7, 2016

I did not state clearly that the KB does actually repair SBWS. KB3086798 - Update for Service Bus Server 1.1 https://www.microsoft.com/en-us/download/details.aspx?id=49496

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Mar 8, 2016

@jeffreywstevens Any chance you can create a VM in Azure using a trial subscription and let me give it a whack?

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 8, 2016

I have plenty of Azure credit. I created a VM and installed Service Bus 1.1. Once I get it configured and working for external connections I will supply you with the connect string and certificate. MyEmail is username@orionfusion.com. Hopefully I wont get spammed for this message.

@TravisTheTechie

This comment has been minimized.

Copy link
Contributor

@TravisTheTechie TravisTheTechie commented Mar 8, 2016

I've had a chat with someone responsible for SBWS at Microsoft, and their suggestion was that we split support for SBWS from ASB. While it might be similar, we are just likely to see more feature divergence over time.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Mar 8, 2016

Are they completely separate assemblies to communicate with Azure and Windows Service Bus? I get the point, but would hate to maintain yet another transport for a 5% variance.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 8, 2016

The on premise Azure Pack SBWS uses the same SDKs and assemblies fixed at specific versions for compatibility. It will not change until they drop a new version which may happen with the Azure Stack. The Azure Service Bus drops new versions and features at a more aggressive cadence.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Mar 9, 2016

I have an Azure VM with Service Bus 1.1 remotely accessible if you are still interested. I will need to send you a cert and a connect string.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Mar 9, 2016

Very, please send the credentials to me and I'll work on making MT work with WSB.

Send them to chris at phatboyg dot com and I'll try to get it done before the end of the week!

@mitro

This comment has been minimized.

Copy link

@mitro mitro commented Apr 8, 2016

@phatboyg Have you managed to make it work? If so, could you provide a snippet with the configuration code?

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Apr 8, 2016

There is a branch I'm working on that adds support for SBWS, I'm just having difficulty getting it tested due to connectivity issues to an SBWS machine running in Azure. I had to set it aside for a bit, but I plan to return to it and get it sorted out.

https://github.com/phatboyg/MassTransit/tree/sbws

@phatboyg phatboyg removed the v3 label Apr 21, 2016
@NeO1984

This comment has been minimized.

Copy link

@NeO1984 NeO1984 commented Sep 9, 2016

@phatboyg I have tried SBWS transport downloaded from link https://github.com/phatboyg/MassTransit/tree/sbws, it does not work. Do you have any plan to work on it? Thanks.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Nov 24, 2016

So the buzz is that SBWS isn't long for this world, not sure this is worth taking any further.

@phatboyg phatboyg closed this Nov 24, 2016
@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Nov 24, 2016

I am very interested in the buzz since I have SBWS installed and in use on premise. I need to formulate migration plans on Azure Stack or just in Azure depending on the timeline. I am still running AppFabric which has also reached end of life.

@phatboyg

This comment has been minimized.

Copy link
Member

@phatboyg phatboyg commented Nov 24, 2016

Well, I think the lack of updates and the shift in direction for service bus in Azure (well, not a shift, but more of a refinement) is a good hint that we won't be seeing a whole lot of new development in this area. Just speculation, though.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Nov 24, 2016

You are correct there will not be any future development but it appears it is supported. After I posted I found some information direct from Clemens Vasters and a presentation on the future direction. https://www.biztalk360.com/integrate-2016-resources/service-bus-roadmap-whats-next
http://stackoverflow.com/questions/35401858/is-service-bus-for-windows-server-dead
Going forward on premise will be Azure Stack whenever that is released and it won't be free.

@phatboyg

This comment has been minimized.

@jeffreywstevens

This comment has been minimized.

Copy link

@jeffreywstevens jeffreywstevens commented Jan 20, 2017

Thank you very much for the very timely posting. My company has to make some decisions based on this information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
7 participants
You can’t perform that action at this time.