iisnode installer for iis express must unlock system.webServer/websockets config section #219

Closed
markcowl opened this Issue Oct 2, 2012 · 2 comments

Projects

None yet

3 participants

@markcowl

From a conversation with IIS team:

I doubt whether that is true.
webSocket section is locked down to editable only in applicationhost.config by default, and doesn’t change depending on ASP.NET installation.

To unlock it, the installer needs to unlock the webSocket section.

ServerManager serverManager = new ServerManager();
Configuration appHostConfiguration = serverManager.GetApplicationHostConfiguration();
ConfigurationSection webSocketSection = appHostConfiguration.GetSection("system.webServer/webSocket");

   webSocketSection.OverrideMode = OverrideMode.Allow;
   serverManager.CommitChanges();

From: Mark Cowlishaw
Sent: Monday, October 1, 2012 5:33 PM
To: Yamini Jagadeesan
Cc: IIS Discussion
Subject: IIS8 Configuration story for system.webServer/webSocket configuration element

Hi Yamini,

We are currently working on supporting WebSockets ove node.js in IIS (using the iisnode native module). As part of this, our installer will need to turn off the IIS stack’s WebSockets support for web applications that use node.js. We have heard that this configuration option is not allowed for vanilla IIS 8 installs, but is allowed if ASP.Net is installed. Wondering if you’ve heard of this and if there are any other ‘special’ IIS 8 configurations we should be thinking about.

Also, any contact you might have that’s knowledgeable about IIS 8 configuration would be extremely helpful.

Thanks,
-Mark

@tjanczuk tjanczuk closed this in e33c99f Oct 11, 2012
@tjanczuk
Owner

The fix is for iisnode MSI to enable override of the webSocket config section in web.config. This allows node.js websocket applications to disable IIS'es websocket module to avoid conflicts, like this: https://github.com/tjanczuk/iisnode/blob/master/test/functional/www/130_websocket_onetwothree/web.config#L6

@ldsenow

Hi, I turned off IIS websockets module in web.config like this <webSocket enabled="false" />, it works on a IIS 8, but dose not work on IIS 8 Express. I am developing this in WebMatrix and the error is saying something like this

"This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false". "

I tried to run the command to unlock the section. It couldn't help resolve this issue. I have also tried to change the applicationHostConfig to "Allow" the overrideModelDefault, but did not have a good luck. Any idea to get it through?
Or IIS 8 express simply is not supported?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment