Title: Error "EPERM: operation not permitted, lstat ..." when deployed to full IIS with restricted permissions · Issue #1101 · aspnet/JavaScriptServices · GitHub
Open Graph Title: Error "EPERM: operation not permitted, lstat ..." when deployed to full IIS with restricted permissions · Issue #1101 · aspnet/JavaScriptServices
X Title: Error "EPERM: operation not permitted, lstat ..." when deployed to full IIS with restricted permissions · Issue #1101 · aspnet/JavaScriptServices
Description: In a typical IIS deployment, the application runs as a user that only has permission to read the filesystem at the level of the application and below. It does not usually have permission to read any attributes of ancestor-level directori...
Open Graph Description: In a typical IIS deployment, the application runs as a user that only has permission to read the filesystem at the level of the application and below. It does not usually have permission to read an...
X Description: In a typical IIS deployment, the application runs as a user that only has permission to read the filesystem at the level of the application and below. It does not usually have permission to read an...
Opengraph URL: https://github.com/aspnet/JavaScriptServices/issues/1101
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Error \"EPERM: operation not permitted, lstat ...\" when deployed to full IIS with restricted permissions","articleBody":"In a typical IIS deployment, the application runs as a user that only has permission to read the filesystem at the level of the application and below. It does *not* usually have permission to read any attributes of ancestor-level directories.\r\n\r\nThis causes Node to throw an error when it tries to load any module. For example, if the module file was at `C:\\Users\\username\\apps\\myapp1\\`, the IIS user would typically have access to read attributes of `C:\\` and `C:\\Users`, but *not* `C:\\Users\\username`, so Node would throw:\r\n\r\n```\r\nError: EPERM, operation not permitted 'C:\\Users\\username'\r\n at Error (native)\r\n at Object.bindingFs.lstat ([eval]:1:138)\r\n at Object.fs.lstatSync (fs.js:796:18)\r\n at Object.realpathSync (fs.js:1387:21)\r\n at tryFile (module.js:135:15)\r\n at Function.Module._findPath (module.js:174:18)\r\n at Function.Module._resolveFilename (module.js:334:25)\r\n at Function.Module._load (module.js:278:25)\r\n at Module.require (module.js:365:17)\r\n at require (module.js:384:17)\r\n```\r\n\r\nThe underlying issue is [a bug which was already reported to Node](https://github.com/nodejs/node-v0.x-archive/issues/3977), i.e., that Node tries to walk along the file path to the module, starting from the disk root, reading the attributes of each directory to see whether or not it's a symlink. It's fine to do that in typical Linux/macOS cases, but is not at all fine in typical Windows cases.\r\n\r\nThis affects all uses of NodeServices (both the SPA templates, and any standalone usage) for applications deployed to IIS, such as those deployed to a local IIS instance by Visual Studio.","author":{"url":"https://github.com/SteveSandersonMS","@type":"Person","name":"SteveSandersonMS"},"datePublished":"2017-07-11T08:47:12.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/1101/JavaScriptServices/issues/1101"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:34e1e28b-ac3b-74de-627b-752a31a5909f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B78A:15DFF5:27E04E4:3640F2E:696ADDE6 |
| html-safe-nonce | 407d97711c3b7436c5d3a3a3e50198b52dd3148d00b40c363ef068b8cc98e03c |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNzhBOjE1REZGNToyN0UwNEU0OjM2NDBGMkU6Njk2QURERTYiLCJ2aXNpdG9yX2lkIjoiMTQ5MTMwMDg5NTYzMjg0MjIxNCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 263f63e417eaed8c14b2d2dc826dc6891e7a435c88e1fd0f9140e421cce50d2f |
| hovercard-subject-tag | issue:241971678 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/aspnet/JavaScriptServices/1101/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4b3aa9b50bca9a6134ccb085e60403486d1b2b10f152e894afb6767024793b17/aspnet/JavaScriptServices/issues/1101 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4b3aa9b50bca9a6134ccb085e60403486d1b2b10f152e894afb6767024793b17/aspnet/JavaScriptServices/issues/1101 |
| og:image:alt | In a typical IIS deployment, the application runs as a user that only has permission to read the filesystem at the level of the application and below. It does not usually have permission to read an... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | SteveSandersonMS |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/aspnet/JavaScriptServices git https://github.com/aspnet/JavaScriptServices.git |
| octolytics-dimension-user_id | 6476660 |
| octolytics-dimension-user_login | aspnet |
| octolytics-dimension-repository_id | 45365298 |
| octolytics-dimension-repository_nwo | aspnet/JavaScriptServices |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 45365298 |
| octolytics-dimension-repository_network_root_nwo | aspnet/JavaScriptServices |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 524a93f2c1f36522a3b4be4c110467ee4172245d |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width