Error: EPERM, operation not allowed with Node.js and Etherpad Lite

I try to get an Etherpad Lite site with IIS on my computer before I download it to Azure for Websites, but I get this error when I try ( http://pastebin.com/4rZWbqix ):

iisnode encountered an error while processing the request. HRESULT: 0x2 HTTP status: 500 Reason for HTTP: Internal server error

You get an HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled is 'True'.

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

The last 64k output generated by the node.exe process in 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) 

There is no fs.js file in the Etherpad directory, so I would suggest that it has some part of node.js that has a problem. I am new to node.js, so any help would be appreciated.

EDIT 1: I am currently exploring alternatives to Azure and granting permissions to C: \ Users \ Matthew. But is it possible to somehow modify fs.js to put try / catch on binding.lstat?

EDIT 2: After playing a little with him (adding that the permissions worked), I got him to work. But now loading 127.0.0.1:81 returns:

iisnode encountered an error while processing the request. HRESULT: 0x2 HTTP status: 500 Reason for HTTP: Internal server error

You get an HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled is 'True'.

In addition to the stdout and stderr logs 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 in stdout and stderr is shown below:

[x1B] [33m [2012-10-03 20: 28: 13.587] [WARN] console - [x1B] [39mNo settings file was found. Continued use of default settings!

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

It would seem that this is not an error, since what is being output is expected, but it seems to stop at plugins.formatPlugins ().

+8
azure etherpad iisnode
source share
3 answers

Make sure that the user ID associated with the IIS application pool on which the node.js application is running has the appropriate file system permissions at the location where you deployed the application (in this case, it looks like c:\users\matthew ).

If you use the application in the default application pool and use the default IIS user, you must grant the necessary permissions with:

% systemdrive% \ windows \ system32 \ icacls.exe c: \ users \ matthew / grant IIS_IUSRS: (OI) (CI) F

+8
source share

This is a permission in the folder "C: \ Users \ Matthew". Take ownership and give permission for change.

0
source share

I would not recommend Azure to host Etherpad Lite, we do not optimize for Microsoft services, including Microsoft Windows. If this is an option, use linux to host your node instances, you will be much happier in my experience.

-3
source share

All Articles