7

実行していたwebmatrix2を最新バージョンにアップグレードするのを間違えましたが、今ではすべてが壊れています。

アバウト画面から、これは私が実行しているものです:

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

最新バージョンのwebmatrix2をインストールするまで、すべてが完璧に実行されていました。最新バージョンでは、次のエラーが発生します。

iisnodeは構成ファイルを読み取ることができませんでした。web.configファイルの構文が正しいことを確認してください。特に、iisnode構成セクションが予想されるスキーマと一致することを確認してください。ご使用のバージョンのiisnodeに必要なiisnodeセクションのスキーマは、%systemroot%\ system32 \ inetsrv \ config \ schema\iisnode_schema.xmlファイルに保存されています。

これはどういう意味ですか???? スキーマ?

これが私のweb.configファイルです。何も変更していません。なぜwebmatrixがそれについて不平を言っているのですか?

テンプレートの例を実行してみましたが、同じメッセージが表示されます。あなたは物事を壊すためにマイクロソフトを何をしましたか!!!???

                  <!-- 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>

4

5 に答える 5

4

最も簡単な解決策は、正しいスキーマをiisexpressフォルダーにコピーすることです。

管理者コマンドプロンプトから:

x64マシンの場合:

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

x86マシンの場合:

xcopy /y "%programfiles%\iisnode-dev\release\x86\iisnode_schema_x86.xml" "%programfiles%\IIS Express\config\schema\iisnode_schema.xml"
于 2012-09-07T17:54:56.557 に答える
4

問題は、IISNodeがメッセージをログに記録する方法です。これは、私や他の人が不満を言っているconsole.logの問題と、IISNodeが頻繁にクラッシュする原因に直接関係していると思います。IISNodeは、console.logメッセージをiisnodeと呼ばれる別のフォルダーに格納するようになりました。別のロギングシステムを使用しており、古いserver.js.logsシステムよりも安定していると思います。

これらのweb.config設定は使用できなくなっていることがわかりました。

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

これらを削除すると、すべてが正常に機能します。

于 2012-09-08T00:37:48.150 に答える
3

また、本日WebMatrix 2ファイナルに更新しましたが、IIS Expressが破損し、Visual Studio2012RCおよびWebMatrix自体で動作できなくなりました。ただし、次のようにして修正することができました。

  • プログラムの追加と削除からIISExpress8.0をアンインストールします
  • プログラムの追加と削除からIISExpress7.5をアンインストールします
  • Web Platform Installerを実行し、IISExpress8.0を再インストールします。

IISExpressフォルダーの内容もマイドキュメントから削除しましたが、それが必要かどうかはわかりません。

于 2012-09-07T13:58:00.347 に答える
0

これを修正する別の簡単な方法をまとめました。次のWebPIインストールリンクを使用して、iisnodeの再インストールをトリガーできます。

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

これをクリックすると、正しいバージョンのIISノードがインストールされ、新しいスキーマファイルがIISExpressディレクトリに自動的にコピーされます。これがうまくいかない場合はお知らせください:)

于 2012-09-20T16:25:22.710 に答える
0

はい、その通りです。新しいロギング設定をサポートするために、iisnodeの構成設定に重大な変更がありました。そのため、新しい構成スキーマが必要です。

于 2012-09-11T01:45:02.517 に答える