Jump to content

node.js für iis 10


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Servus,

 

ich will für meine Homepage Node.JS verwenden. diese habe ich dann natürlich installiert, jedoch erhalte ich dann die Fehlermeldung, das ich iisnode anstatt node.js verwenden muss. nach kurzer Recherche bin ich auf diese Anleitung gestoßen: https://github.com/Azure/iisnode

 

diese ist jedoch für iis 7/8 und funktioniert mit iis 10 nicht. und alle anleitungen etc. die ich dazu finde beziehen sich nur auf iis 7/8. Ist evtl. iisnode bei iis 10 schon integriert und wenn ja, wie kann ich es in meine Seite einbinden?

 

Link zu diesem Kommentar

Oh tschuldigung, die habe ich ganz vergessen zu erwähnen.

 

Wenn ich versuche mittels node.js die Anwendung zu "starten" bekomme ich die Fehlermeldung, das ich die Anwendung mittels IISNode benutzen soll.

 

Wenn ich IISNode verwende (soweit ich bisher erfahren habe, muss man diese in der web.config der jeweiligen Seite einfügen) erhalte ich die Fehlermeldung: 500 Internal Error

Link zu diesem Kommentar

Error 500 kann leider so ziemlich alles sein. Von einem Fehler im IIS (falsche Syntax in Konfiguration) über Fehler in IISNode (Konfiguration, fehlende Voraussetzungen) bis zu einem Fehler in der ausgeführten Anwendung.

 

Schalte mal detaillierte Fehler ein, schau in die Ereignisanzeige und aktiviere die Ablaufverfolgung für Anforderungsfehler. Bei IISNode sind Beispiele dabei, die man mit einer Batch-Datei installieren kann. Laufen diese?

Link zu diesem Kommentar

So, also die Fehlermeldung 500 kommt nur, wenn ich folgendes in die web.config einfüge:

<configuration>
  <system.webServer>

    <!-- indicates that the hello.js file is a node.js application 
    to be handled by the iisnode module -->

    <handlers>
      <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
    </handlers>

    <!-- 
      the iisnode section configures the behavior of the node.js IIS module 
      setting values below are defaults

    * node_env - determines the environment (production, development, staging, ...) in which 
      child node processes run; if nonempty, is propagated to the child node processes as their NODE_ENV
      environment variable; the default is the value of the IIS worker process'es NODE_ENV
      environment variable

    * nodeProcessCommandLine - command line starting the node executable; in shared
      hosting environments this setting would typically be locked at the machine scope.
      
    * interceptor - fully qualified file name of a node.js application that will run instead of an actual application
      the request targets; the fully qualified file name of the actual application file is provided as the first parameter
      to the interceptor application; default interceptor supports iisnode logging
      
    * nodeProcessCountPerApplication - number of node.exe processes that IIS will start per application;
      setting this value to 0 results in creating one node.exe process per each processor on the machine
      
    * maxConcurrentRequestsPerProcess - maximum number of reqeusts one node process can 
      handle at a time
      
    * maxNamedPipeConnectionRetry - number of times IIS will retry to establish a named pipe connection with a
      node process in order to send a new HTTP request
      
    * namedPipeConnectionRetryDelay - delay in milliseconds between connection retries
    
    * maxNamedPipeConnectionPoolSize - maximum number of named pipe connections that will be kept in a connection pool; 
      connection pooling helps improve the performance of applications that process a large number of short lived HTTP requests
      
    * maxNamedPipePooledConnectionAge - age of a pooled connection in milliseconds after which the connection is not reused for
      subsequent requests
    
    * asyncCompletionThreadCount - size of the IO thread pool maintained by the IIS module to process asynchronous IO; setting it
      to 0 (default) results in creating one thread per each processor on the machine
    
    * initialRequestBufferSize - initial size in bytes of a memory buffer allocated for a new HTTP request
    
    * maxRequestBufferSize - maximum size in bytes of a memory buffer allocated per request; this is a hard limit of 
      the serialized form of HTTP request or response headers block
      
    * watchedFiles - semi-colon separated list of files that will be watched for changes; a change to a file causes the application to recycle;
      each entry consists of an optional directory name plus required file name which are relative to the directory where the main application entry point 
      is located; wild cards are allowed in the file name portion only; for example: "*.js;node_modules\foo\lib\options.json;app_data\*.config.json"
      
    * uncFileChangesPollingInterval - applications are recycled when the underlying *.js file is modified; if the file resides
      on a UNC share, the only reliable way to detect such modifications is to periodically poll for them; this setting 
      controls the polling interval
      
    * gracefulShutdownTimeout - when a node.js file is modified, all node processes handling running this application are recycled;
      this setting controls the time (in milliseconds) given for currently active requests to gracefully finish before the 
      process is terminated; during this time, all new requests are already dispatched to a new node process based on the fresh version 
      of the application
    
    * loggingEnabled - controls whether stdout and stderr streams from node processes are captured and made available over HTTP
    
    * logDirectory - directory name relative to the main application file that will store files with stdout and stderr captures; 
      individual log file names have unique file names; log files are created lazily (i.e. when the process actually writes something
      to stdout or stderr); an HTML index of all log files is also maintained as index.html in that directory;
      by default, if your application is at http://foo.com/bar.js, logs will be accessible at http://foo.com/iisnode;
      SECURITY NOTE: if log files contain sensitive information, this setting should be modified to contain enough entropy to be considered
      cryptographically secure; in most situations, a GUID is sufficient
      
    * debuggingEnabled - controls whether the built-in debugger is available
      
    * debuggerPortRange - range of TCP ports that can be used for communication between the node-inspector debugger and the debugee; iisnode
      will round robin through this port range for subsequent debugging sessions and pick the next available (free) port to use from the range
      
    * debuggerPathSegment - URL path segment used to access the built-in node-inspector debugger; given a node.js application at 
      http://foo.com/bar/baz.js, the debugger can be accessed at http://foo.com/bar/baz.js/{debuggerPathSegment}, by default
      http://foo.com/bar/baz.js/debug
    
    * debugHeaderEnabled - boolean indicating whether iisnode should attach the iisnode-debug HTTP response header with 
      diagnostics information to all responses
    
    * maxLogFileSizeInKB - maximum size of a single log file in KB; once a log file exceeds this limit a new log file is created

    * maxTotalLogFileSizeInKB - maximum total size of all log files in the logDirectory; once exceeded, old log files are removed
    
    * maxLogFiles - maximum number of log files in the logDirectory; once exceeded, old log files are removed
    
    * devErrorsEnabled - controls how much information is sent back in the HTTP response to the browser when an error occurrs in iisnode; 
      when true, error conditions in iisnode result in HTTP 200 response with the body containing error details; when false,
      iisnode will return generic HTTP 5xx responses
      
    * flushResponse - controls whether each HTTP response body chunk is immediately flushed by iisnode; flushing each body chunk incurs 
      CPU cost but may improve latency in streaming scenarios
      
    * enableXFF - controls whether iisnode adds or modifies the X-Forwarded-For request HTTP header with the IP address of the remote host
    
    * promoteServerVars - comma delimited list of IIS server variables that will be propagated to the node.exe process in the form of 
      x-iisnode-<server_variable_name> HTTP request headers; for a list of IIS server variables available see 
      http://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx; for example "AUTH_USER,AUTH_TYPE"
      
    * configOverrides - optional file name containing overrides of configuration settings of the iisnode section of web.config; 
      the format of the file is a small subset of YAML: each setting is represented as a <key>: <value> on a separate line 
      and comments start with # until the end of the line, e.g. 
            # This is a sample iisnode.yml file
            nodeProcessCountPerApplication: 2
            maxRequestBufferSize: 8192 # increasing from the default
            # maxConcurrentRequestsPerProcess: 512 - commented out setting
      
    -->

    <iisnode      
      node_env="%node_env%"
      nodeProcessCountPerApplication="1"
      maxConcurrentRequestsPerProcess="1024"
      maxNamedPipeConnectionRetry="100"
      namedPipeConnectionRetryDelay="250"      
      maxNamedPipeConnectionPoolSize="512"
      maxNamedPipePooledConnectionAge="30000"
      asyncCompletionThreadCount="0"
      initialRequestBufferSize="4096"
      maxRequestBufferSize="65536"
      watchedFiles="*.js;iisnode.yml"
      uncFileChangesPollingInterval="5000"      
      gracefulShutdownTimeout="60000"
      loggingEnabled="true"
      logDirectory="iisnode"
      debuggingEnabled="true"
      debugHeaderEnabled="false"
      debuggerPortRange="5058-6058"
      debuggerPathSegment="debug"
      maxLogFileSizeInKB="128"
      maxTotalLogFileSizeInKB="1024"
      maxLogFiles="20"
      devErrorsEnabled="true"
      flushResponse="false"      
      enableXFF="false"
      promoteServerVars=""
      configOverrides="iisnode.yml"
     />

    <!--     
    
    One more setting that can be modified is the path to the node.exe executable and the interceptor:
    
    <iisnode
      nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" 
    	
    
    -->

  </system.webServer>
</configuration>

 

wenn ich diese wieder lösche, funktioniert meine Webseite wieder.

 

Der Error, der mir in Plesk angezeigt wird:

Repairing web server configuration for all domains. This aspect can be used with individual domains ("plesk repair web example.com"), and on the server level ("plesk repair web"). Repairing domain 'meinewebseite.de' failed: Filename: \\?\C:\Inetpub\vhosts\meinewebseite.de\httpdocs\web.config Error: The configuration section 'system.webServer/iisnode' cannot be read because it is missing a section declaration In module Exception type: System.Runtime.InteropServices.COMException at Microsoft.Web.Administration.Interop.IAppHostAdminManager.GetAdminSection(String bstrSectionName, String bstrPath) at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) at ServerManagerFactory.getSectionInternal(String sectionPath, Type sectionType, String location) at ServerManagerFactory.getIisNodeSection(String location) at IisNode.getIisNode(IisNode* ) at IisNode.getNodeEnv(IisNode* , basic_string<wchar_t\,std::char_traits<wchar_t>\,std::allocator<wchar_t> >* ) at updateIisNode()(WebServerAdapter::updateIisNode line 4406) at configHosting(meinewebseite.de)(WebServerAdapter::configHosting line 393) at configHosting(meinewebseite.de)(WebServerManager::configHosting line 2656) at Unable to execute console command: '--reconfigure-vhost'(vconsoleapp::start line 95) at Unable to execute command: '"C:\Program Files (x86)\Plesk\admin\bin64\websrvmng" --reconfigure-vhost "--vhost-config=C:/Program Files (x86)/Plesk/PrivateTemp/ich598f2e7a.tmp" "--config="'(vconsoleapp::run line 117) (Error code 1) 

 

 

nur die detailierte Fehlermeldung kann ich nicht aktivieren, bzw. finde hier den Punkt zum aktivieren nicht. bzw ich erhalte diese Fehlermeldung:

image.png.1a5411fe441e22c240569e8b4482e305.png

bearbeitet von trix0
Link zu diesem Kommentar

Die detaillierten Fehlermeldungen kannst Du im IIS Manager unter "Fehlerseiten" - "Featureeinstellungen bearbeiten" - "detaillierte Fehlermeldungen" aktivieren.

 

Wenn die gesamte Website und nicht nur der Node-Teil nicht mehr funktioniert nach Hinzufügen der Änderung, liegt wohl ein Syntaxfehler in der web.config vor. Das sollte in der Ereignisanzeige protokolliert werden.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...