Приложение Nodejs не запускается - выдает EPERM: операция не разрешена, lstat 'C: \ DATA \ WEBFOLDERS' - PullRequest
0 голосов
/ 27 июня 2019

запуск приложения для небольших узлов на iisNode на win server 2012 завершается с ошибкой:

Application has thrown an uncaught exception and is terminated:
    Error: EPERM: operation not permitted, lstat 'C:\DATA\WEBFOLDERS'
            at Object.realpathSync (fs.js:1657:15)
            at toRealPath (module.js:164:13)
            at Function.Module._findPath (module.js:213:22)
            at Function.Module._resolveFilename (module.js:546:25)
            at Function.Module._load (module.js:475:25)
            at Module.require (module.js:597:17)
            at require (internal/module.js:11:18)
            at Object. (C:\Program Files\iisnode\interceptor.js:211:1)
            at Module._compile (module.js:653:30)
            at Object.Module._extensions..js (module.js:664:10)

Это уже зарегистрировано в файлах в папке 'webfolders' / 'sitefolder' / iisnode

  • Папка для сайта и всех его подпапок имеет (пока что) «все» со всеми правами доступа. Но, конечно, родительская папка «webfolders» не имеет и никогда не должна получать доступ к коду сайтов.

  • понижен до версии узла 8.12.0. поскольку мы знаем, что приложение запускается без проблем на тестовом сервере (а также IIS 8)

  • понижен до 0.2.2.0 (так же, как на нашем тестовом сервере)
  • код и файлы кодов такие же, как на тестовом сервере, где все работает нормально

web.config:

    <system.webServer>
    <handlers>
      <add name="iisnode" path="nodeapp.js" verb="*" modules="iisnode" />
    </handlers>

    <rewrite>
      <rules>
        <rule name="default">
          <match url="^$" />
          <action type="Rewrite" url="nodeapp.js" />
        </rule>
        <rule name="validate">
          <match url="validate/*" />
          <action type="Rewrite" url="nodeapp.js/validate" />
        </rule>
      </rules>
    </rewrite>

    <security>
      <requestFiltering>
        <hiddenSegments>
          <add segment="node_modules" />
          <add segment="Scripts" />
          <add segment="iisnode" />
        </hiddenSegments>
      </requestFiltering>
    </security>
    <iisnode nodeProcessCommandLine="%programfiles%\nodejs\node.exe" devErrorsEnabled="true" debuggingEnabled="true" />
   </system.webServer>
...