/ / Webmatrix 2 quebrado - node.js, webmatrix

Webmatrix 2 quebrado - node.js, webmatrix

Eu cometi o erro de atualizar webmatrix 2 que eu estava correndo para a versão mais recente e agora está quebrado tudo!

Da tela sobre isso é o que estou executando:

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

Tudo estava correndo perfeito até que eu instalei a última versão do webmatrix 2 em que agora estou recebendo este erro:

O iisnode não pôde ler o arquivo de configuração. Certifique-se de que a sintaxe do arquivo web.config esteja correta. Em particular, verifique se a seção de configuração do iisnode corresponde ao esquema esperado. O esquema da seção iisnode que sua versão do iisnode requer está armazenada no arquivo% systemroot% system32inetsrvconfigschemaiisnode_schema.xml.

Que diabos isso significa ???? esquema?

Aqui está o meu arquivo web.config Eu não mudei nada nele, porque é webmatrix reclamando sobre isso ???

Eu mesmo tentei executar os exemplos de modelo, mas eles exibem a mesma mensagem também. O que você fez a Microsoft para quebrar as coisas!

                  <!-- 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%nodejsnode.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>

Respostas:

4 para resposta № 1

O problema é como o IISNode funciona para registrar mensagensagora. Eu acredito que ele está diretamente relacionado com o console.log problemas que eu e outros se queixaram, e como ele causou o IISNode para falhar frequentemente. IISNode agora armazena console.log mensagens em uma pasta separada chamada iisnode. Ele usa um sistema de log diferente e Eu estou presumindo que é mais estável que o antigo sistema server.js.logs.

Descobri que essas configurações web.config não são mais utilizáveis:

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

Se você remover estes, tudo funciona bem.


4 para resposta № 2

A solução mais rápida é copiar o esquema correto para a pasta iis express.

De um prompt de comando do administrador:

em uma máquina x64:

xcopy /y "%programfiles(x86)%iisnode-devreleasex86iisnode_schema_x86.xml" "%programfiles(x86)%IIS Expressconfigschemaiisnode_schema.xml"

Em uma máquina x86:

xcopy /y "%programfiles%iisnode-devreleasex86iisnode_schema_x86.xml" "%programfiles%IIS Expressconfigschemaiisnode_schema.xml"

3 para resposta № 3

Eu também atualizei para a final do WebMatrix 2 hoje, e ele quebrou o IIS Express, impedindo que ele trabalhasse com o Visual Studio 2012 RC e o próprio WebMatrix. No entanto, consegui corrigi-lo fazendo o seguinte:

  • Desinstale o IIS Express 8.0 em Adicionar / Remover Programas
  • Desinstalar o IIS Express 7.5 em Adicionar / Remover Programas
  • Execute o Web Platform Installer e reinstale o IIS Express 8.0.

Também excluí o conteúdo da pasta IISExpress de Meus Documentos, mas não tenho certeza se isso foi necessário.


0 para a resposta № 4

Sim, você está correto, houve quebra de alterações nos serviços de configuração do iisnode para suportar as novas configurações de log. É por isso que o novo esquema de configuração é necessário.


0 para a resposta № 5

Nós montamos outra maneira fácil de corrigir isso. Você pode apenas acionar uma reinstalação do iisnode com este link de instalação do WebPI:

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

Clicar nisso garantirá a versão correta doO nó IIS está instalado e copie o novo arquivo de esquema para o diretório IIS Express automaticamente. Por favor, por favor, deixe-nos saber se isso não funciona para você :)