2012-10-03 26 views
8

Sto tentando di ottenere un sito Etherpad Lite attivo con IIS sul mio computer prima di caricarlo in Azure per i siti Web, ma ottengo questo errore quando provo (http://pastebin.com/4rZWbqix):Errore: EPERM, operazione non consentita con Node.js ed Etherpad Lite

iisnode encountered an error when processing the request. HRESULT: 0x2 HTTP status: 500 HTTP reason: Internal Server Error

You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.

In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.

The last 64k of the output generated by the node.exe process to stdout and stderr is shown below: fs.js:520 return

 binding.lstat(pathModule._makeLong(path)); 
      ^Error: EPERM, operation not permitted 'C:\Users\Matthew' 
at Object.fs.lstatSync (fs.js:520:18) 
at Object.realpathSync (fs.js:1047:21) 
at tryFile (module.js:142:15) 
at Function.Module._findPath (module.js:181:18) 
at Function.Module._resolveFilename (module.js:336:25) 
at Function.Module._load (module.js:280:25) 
at Module.runMain (module.js:492:10) 
at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

non c'è alcun file fs.js nella directory di Etherpad, quindi presumo che si tratta di una parte di Node.js che sta avendo un problema. Sono nuovo di Node.js, quindi qualsiasi aiuto sarebbe apprezzato.

MODIFICA 1: attualmente sto esaminando le alternative ad Azure e concedo le autorizzazioni a C: \ Users \ Matthew. Ma sarebbe possibile modificare in qualche modo fs.js per provare/aggirare binding.lstat?

EDIT 2: Dopo aver giocato un po 'con esso (aggiungendo le autorizzazioni ha funzionato!), Ho ottenuto che funzioni. Ma ora di carico 127.0.0.1:81 rendimenti:

iisnode encountered an error when processing the request. HRESULT: 0x2 HTTP status: 500 HTTP reason: Internal Server Error

You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.

In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.

The last 64k of the output generated by the node.exe process to stdout and stderr is shown below:

[x1B][33m[2012-10-03 20:28:13.587] [WARN] console - [x1B][39mNo settings file found. Continuing using defaults!

[x1B][32m[2012-10-03 20:28:14.338] [INFO] console - [x1B][39mInstalled plugins:

Sembrerebbe come questo non è un errore, dal momento che ciò che è in uscita è quello che ci si aspetta, ma sembra fermarsi a plugins.formatPlugins().

+0

Cosa hai fatto per risolvere questo problema? Ho i miei file in 'C: \ Users \ langdonx \ Documents \ WebStorm Projects \ x', ma l'errore dice' 'C: \ Users \ langdonx''. Non voglio concedere l'accesso IIS_IUSRS all'intera directory di tutti gli utenti. Cosa mi manca? – Langdon

+0

Sfortunatamente, non ho mai trovato una soluzione alternativa: \ – MatthewSot

risposta

8

Verificare che l'identità utente associata al pool di applicazioni IIS che esegue l'applicazione node.js abbia le autorizzazioni appropriate per il file system nella posizione in cui è stata distribuita l'applicazione (in questo caso si assomiglia a c:\users\matthew).

Se si esegue la vostra applicazione all'interno del pool di applicazioni di default e l'utilizzo di utente di IIS predefinito, si dovrebbe essere in grado di concedere le autorizzazioni necessarie con:

% systemdrive% \ windows \ system32 \ Icacls.exe C: \ Users \ matthew/grant IIS_IUSRS: (OI) (CI) F

+0

Ho appena eseguito questo errore. Ho i miei file in 'C: \ Users \ langdonx \ Documents \ WebStorm Projects \ x', dando pieno accesso a' Everyone', ma l'errore cita ancora 'operazione non consentita 'C: \ Users \ langdonx''. Non voglio concedere l'accesso IIS_IUSRS all'intera directory di tutti gli utenti. Cosa mi manca? – Langdon

+0

Doppio controllo della cartella annotata dopo "operazione non consentita". Avevo un sito web in una cartella ben nidificata, con i suoi node_modules locali e ho ricevuto questo errore, e ho scoperto che il nodo ricopre l'albero delle cartelle alla ricerca di cartelle node_modules e ha fatto in modo che arrivasse fino a c: \ users \ bob \ node_modules ed è lì che ho avuto terribili problemi di accesso. Per scopi di sviluppo, ho appena impostato l'identità del pool di app su "LocalService" e ha funzionato. Concedere l'autorizzazione del pool di app alla cartella c: \ users \ bob non ha funzionato. –

-3

Non consiglierei Azure per l'hosting di Etherpad Lite, non ottimizziamo per i servizi Microsoft, questo include Microsoft Windows. Se si tratta di un'opzione, si prega di utilizzare linux per ospitare le istanze del nodo, sarà molto più felice nella mia esperienza.

+0

quale host node.js consiglieresti? La maggior parte degli altri che ho incontrato non giocano molto bene con Windows, ed è per questo che mi sono deciso su Azure. – MatthewSot

+0

Nella documentazione, la parte di installazione inizia con Windows. https://github.com/ether/etherpad-lite lol –

0

Riguarda il permesso sulla cartella 'C: \ Users \ Matthew'. Assumere la proprietà e dare i permessi di modifica.

Problemi correlati