Webmatrix 2 is broken

I made a mistake in updating webmatrix 2, which works for me to the latest version, and now it has broken everything!

From the about this screen, I run:

Version 2.0 WebMatrix: 7.1.1674.0 IIS Express: 8.0.8418.0 .NET Framework: 4.0.30319.269 (RTMGDR.030319-2600) Web Deploy: 7.1.1631.0 SQL Server Compact: 4.0.8854.1 Web Platform Installer: 7.1.1622.0 ASP.NET Web Pages: 2.0.20715.0 

Everything worked fine until I installed the latest version of webmatrix 2, in which now I get this error:

iisnode could not read the configuration file. Verify that the syntax of the web.config file is correct. In particular, verify that the iisnode configuration section matches the expected pattern. The iisnode section diagram that your iisnode version requires is stored in the% systemroot% \ system32 \ inetsrv \ config \ schema \ iisnode_schema.xml file.

What the hell does that mean ???? scheme?

Here is my web.config file. I have not changed anything in it, why does webmatrix complain about it ???

I even try to run sample templates, but they display the same message. What did you do Microsoft to break things ????

  <!-- Don't interfere with requests for logs --> <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true"> <match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$"/> </rule> <!-- Don't interfere with requests for node-inspector debugging --> <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true"> <match url="^server.js\/debug[\/]?" /> </rule> <!-- First we consider whether the incoming URL matches a physical file in the /public folder --> <rule name="StaticContent"> <action type="Rewrite" url="public{REQUEST_URI}"/> </rule> <!-- All other URLs are mapped to the Node.js application entry point --> <rule name="DynamicContent"> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/> </conditions> <action type="Rewrite" url="server.js"/> </rule> </rules> </rewrite> <!-- You can control how Node is hosted within IIS using the following options --> <iisnode node_env="%node_env%" nodeProcessCommandLine="&quot;%programfiles%\nodejs\node.exe&quot;" nodeProcessCountPerApplication="1" maxConcurrentRequestsPerProcess="1024" maxNamedPipeConnectionRetry="3" namedPipeConnectionRetryDelay="2000" maxNamedPipeConnectionPoolSize="512" maxNamedPipePooledConnectionAge="30000" asyncCompletionThreadCount="0" initialRequestBufferSize="4096" maxRequestBufferSize="65536" watchedFiles="*.js;node_modules\*;routes\*.js;views\*.ejs;middleware\*.js" uncFileChangesPollingInterval="5000" gracefulShutdownTimeout="60000" loggingEnabled="true" logDirectoryNameSuffix="logs" debuggingEnabled="true" debuggerPortRange="5058-6058" debuggerPathSegment="debug" maxLogFileSizeInKB="128" appendToExistingLog="false" logFileFlushInterval="5000" devErrorsEnabled="true" flushResponse="false" enableXFF="false" promoteServerVars="" /> <!-- <iisnode watchedFiles="*.js;node_modules\*;routes\*.js;views\*.ejs;middleware\*.js"/>--> <!-- watchedFiles="*.js" --> </system.webServer> 

+7
source share
5 answers

The problem is how IISNode works to register messages now. I believe this is directly related to console.log problems that I and others complained about and how this often led to the failure of IISNode. IISNode now stores console.log messages in a separate folder called iisnode. It uses a different logging system, and I believe it is more stable than the older server.js.logs system.

I found that these web.config settings are no longer usable:

 - logDirectoryNameSuffix="logs" - appendToExistingLog="false" - logFileFlushInterval="5000" 

If you delete them, everything will be fine.

+4
source

The quickest solution is to copy the correct schema to the iis express folder.

In the admin command line:

on x64 machine:

 xcopy /y "%programfiles(x86)%\iisnode-dev\release\x86\iisnode_schema_x86.xml" "%programfiles(x86)%\IIS Express\config\schema\iisnode_schema.xml" 

On x86 machine:

 xcopy /y "%programfiles%\iisnode-dev\release\x86\iisnode_schema_x86.xml" "%programfiles%\IIS Express\config\schema\iisnode_schema.xml" 
+4
source

Today I also upgraded to the final WebMatrix 2, and it broke IIS Express, preventing it from working with Visual Studio 2012 RC and WebMatrix itself. However, I was able to fix this by doing the following:

  • Uninstall IIS Express 8.0 from Add or Remove Programs
  • Uninstall IIS Express 7.5 from Add or Remove Programs.
  • Run the web platform installation program and reinstall IIS Express 8.0.

I also deleted the contents of my IISExpress folder from My Documents, but I'm not sure if this is necessary.

+3
source

Yes, you're right, there have been changes to the configuration settings for iisnode to support new logging options. This is why a new configuration scheme is required.

0
source

We've put together another easy way to fix this. You can simply start reinstalling iisnode using this WebPI installation link:

http://www.microsoft.com/web/handlers/webpi.ashx?command=GetInstallerRedirect&appid=iisnodedev32

By clicking on this, you will verify that the correct version of IIS Node is installed, and copy the new schema file to the IIS Express directory automatically. Please let us know if this does not work for you :)

0
source

All Articles