错误:在 azure 服务器上监听 EACCES 0.0.0.0:80 节点 (Windows server 2012 r2)

pbo*_*aux 5 windows azure node.js

我停止了万维网发布服务,并将启动类型更改为禁用,并以管理员身份运行来启动网站,但收到了 EACCES。

这是权限错误吗?我读过在 linux / unix 上使用 sudo 运行网站可以解决这个问题,但是在 Windows 上呢?

编辑:我最终使用了 iisnode,因为我无法解决端口 80 上的 EACCES 错误。以下是我通过 iisnode 模块让节点服务器在 iis 上运行的步骤:

*安装iisnode(任何你想要的地方);
*为 iss 安装“URL Rewrite”插件;
*创建新网站;
*使用以下命令创建 web.config 文件:

  1. 服务器文件上 iisnode 的处理程序映射以及服务器文件的路径;
  2. 重写 url 规则,任何对 url 的请求都转到服务器文件;
  3. 调试和日志记录(日志文件目标路径)设置为 true;

(请在本文底部找到示例 web.config 文件)

*赋予SERVER/IIS_IUSRS对站点iis中找到的目录/虚拟目录的写权限;
*创建本地绑定;
*创建外部绑定,端口为*:80;
*确保节点的 http 侦听器设置为侦听 process.env.PORT,因为 iisnode 会将此环境变量设置为 80 以处理 http 请求;

根文件夹中的示例 web.config 文件,并假设节点服务器(在本例中称为 app.js)也位于根文件夹中。

<configuration>
  <system.webServer>
             <!--Tells iis that app.js is to be handled by iisnode module-->
    <handlers>
        <add name="iisnode" path="app.js" verb="*" modules="iisnode" /> 
    </handlers>
        <!--Url rewrite rule that anything coming to any url of within site goes through app.js-->
    <rewrite>
        <rules>
            <rule name="toNode">
                <match url="/*"/>
                <action type="Rewrite" url="app.js"/>
            </rule>
        </rules>
    </rewrite>

  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

编辑:在很大程度上,我遵循了本教程: https://www.youtube.com/watch ?v=JUYCDnqR8p0

Muk*_*rma 2

如果你想node在 port 上运行应用程序80,那么你必须使用sudo特权帐户运行它。

对于 Windows,重新启动 iis 节点可能可以解决该问题。

在 Windows 上的 80 端口上运行 node.js webbapp