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

Unable to use net.msmq bindings in site resource #396

Open
thebeardgrammer opened this issue Oct 11, 2017 · 6 comments
Open

Unable to use net.msmq bindings in site resource #396

thebeardgrammer opened this issue Oct 11, 2017 · 6 comments

Comments

@thebeardgrammer
Copy link

Cookbook version

6.7.3

Chef-client version

13.5.3

Platform Details

Windows 2012R2

Scenario:

When using the site resource, I am unable to allow for other types of bindings (net.msmq). As the property only allows for http, https, or ftp.

Steps to Reproduce:

use iis_site to manage a site that has exisiting net.msmq bindings, or attempt to add a net.msmq binding to bindings and it will result in either a failure if net.msmq is listed first, or it won't add the binding if its listed after http/https

Expected Result:

Adding the net.msmq binding to the requested site.

Actual Result:

It returns an error if either net.msmq binding exists or it doesn't add the binding if net.msmq is listed after http / https (currently the only way to not encounter an error.)

@iennae
Copy link
Contributor

iennae commented Oct 12, 2017

Can you share the resource as exists in your recipe? Are you specifying the protocol as well as the binding or just the binding?

@iennae
Copy link
Contributor

iennae commented Oct 12, 2017

Based on the resource as defined here https://github.com/chef-cookbooks/iis/blob/master/resources/site.rb, it doesn't look like net.msmq is a protocol that's been implemented with this cookbook yet for that resource.

Based on https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/msmq-activation it seems like this would require updates to more than just the site resource to implement.

@EasyAsABC123
Copy link
Contributor

You should be able to do this but using the 'bindings' property.

https://docs.microsoft.com/en-us/iis/configuration/system.applicationHost/sites/site/bindings/binding

To enable the net.msmq listener for the entire web site, use the following command. Note that the bindingInformation='localhost' bit is what tells the listener which machine is hosting the queues that it should listen to. This will be important when we want to start listening to remote queues.

appcmd set site "Default Web Site" -+bindings.[protocol='net.msmq',bindingInformation='localhost']

To enable the net.msmq protocol for our specific application, use the following command. Note that you can configure multiple protocols for a single application, should you want it to be activated in more than one way (for example, to allow either MSMQ or HTTP you could say /enabledProtocols:net.msmq,http).

appcmd set app "Default Web Site/MsmqService" /enabledProtocols:net.msmq

So you should be able to pass these examples as bindings.

@thebeardgrammer
Copy link
Author

Currently specifying with the bindings property, It will only work if the Net.msmq adapter is listed last. If you attempt to have the net.msmq binding listed before HTTP or HTTPS it will pick up part of the net.msmq binding and return an error.

Specifying the net.msmq in the binding property currently only works if it is listed last and if you are adding chef to manage an already created site, it must also be listed last in the bindings list in IIS. It should be noted that listing the binding, regardless of order or whether the resource passes, It will not add the net.msmq binding in its current form.

@EasyAsABC123
Copy link
Contributor

@thebeardgrammer cool, sounds like we need a unit test to verify and then fix the bug where-ever it may be

@EasyAsABC123
Copy link
Contributor

@thebeardgrammer can you please provide some recipe examples?

I'd like to add them as tests, feel free to add them yourself as a PR.

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

No branches or pull requests

5 participants