We're attempting to migrate our web application servers from 2008 boxes to 2012. As part of this, we're also upgrading the IIS host from 7 to 8.5.
When I attempt to access the simplest application we have on the new box with an identical web.config to our current, working production environment, I get the following error (using IE locally on the host machine).
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Module
WebSocketModule
Notification
BeginRequest
Handler
ExtensionlessUrlHandler-ISAPI-4.0_64bit
Error Code
0x80070490
Config Error
The configuration section 'system.webServer/webSocket' cannot be read because it is missing a section declaration
Config File
\\?\C:\XXX\XXX\XXX\web.config
Config Source:
-1:
0:
Our web server section looks like this.
<system.webServer>
<modules>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="DX.ashx" name="ASPxHttpHandlerModule" preCondition="integratedMode" />
<add name="ASPxUploadProgressHandler" preCondition="integratedMode" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
</handlers>
</system.webServer>
Using my basic pattern finding skills, I tried adding in the webSocket section.
<system.webServer>
<webSocket enabled="false"/>
<modules>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="DX.ashx" name="ASPxHttpHandlerModule" preCondition="integratedMode" />
<add name="ASPxUploadProgressHandler" preCondition="integratedMode" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
</handlers>
</system.webServer>
The error message then changes to the following.
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Module
IIS Web Core
Notification
BeginRequest
Handler
Not yet determined
Error Code
0x8007000d
Config Error
Config File
\\?\C:\MDM\Webs\Symcom\web.config
What in the holy heck am I missing here? The only difference in the config between our working IIS 7 deployment and the new IIS 8.5 deployment are my attempts to provide the webSocket section of the configuration.
So as it turns out, we had .NET installed, and a configuration value for it in the registry, but NOT as part of the server manager. We also had to reboot the server to allow it to finish some updates.
Once we installed it via the server manager and recycled the application pool everything was hunky dory.
User contributions licensed under CC BY-SA 3.0