Visual Studio的码头工人没有按规定node.js的路径不是当它是(Visual Stud

2019-10-29 07:45发布

泊坞窗桌面 - - 我已经在我的电脑上安装了码头工人,并创造了在Azure中的DevOps一个Git仓库为我的SPA(奥里利亚)。 我觉得我有,而不是IISExpress运行的项目,我有“码头工人”。 我点击“泊坞窗”来运行它,它去所有的方式通过,然后我得到下面的异常。 似乎很简单,我没有,除了它是在我的道路node.js中..我GOOGLE了这一点,有一对夫妇的问题上添加节点。所以我把它添加到用户变量。我已经将其添加到系统变量。 然后,我删除了所有条目,并重新安装节点..然后添加节点的路径本身。 然后我重新启动,并再次重新运行该项目 - 先在IISExpress - 成功 - 那么在泊坞窗,你可以再次看到异常。我不知道为什么,当节点是在机器上和路径及其投掷仍一个例外?

    System.AggregateException
  HResult=0x80131500
  Message=One or more errors occurred. (Failed to start Node process. To resolve this:.

[1] Ensure that Node.js is installed and can be found in one of the PATH directories.
    Current PATH enviroment variable is: C:\Windows\system32;C:\Windows;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps;C:\Program Files\dotnet;C:\Users\ContainerUser\AppData\Local\Microsoft\WindowsApps
    Make sure the Node executable is in one of those directories, or update your PATH.

[2] See the InnerException for further details of the cause.)
  Source=System.Private.CoreLib
  StackTrace:
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Microsoft.AspNetCore.Builder.WebpackDevMiddleware.UseWebpackDevMiddleware(IApplicationBuilder appBuilder, WebpackDevMiddlewareOptions options)
   at JobsLedgerAPI.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env) in C:\AURELIA\1. - JOBSLEDGER SPA\JobsLedgerSPA\JobsLedgerAPI\Startup.cs:line 44

Inner Exception 1:
InvalidOperationException: Failed to start Node process. To resolve this:.

[1] Ensure that Node.js is installed and can be found in one of the PATH directories.
    Current PATH enviroment variable is: C:\Windows\system32;C:\Windows;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps;C:\Program Files\dotnet;C:\Users\ContainerUser\AppData\Local\Microsoft\WindowsApps
    Make sure the Node executable is in one of those directories, or update your PATH.

[2] See the InnerException for further details of the cause.

Inner Exception 2:
Win32Exception: The system cannot find the file specified

Answer 1:

既然你提到on my PC ,我相信你的PC上运行的Node.js应用程序需要iisnode模块 。 它在配置web.config需要运行Node.js的过程和主要文件的护理Node.exe执行(比如server.js / main.js / app.js )和整个应用程序生命周期。

举例如下:

    <handlers>
          <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
        </handlers>
<!--...-->

    <iisnode
          nodeProcessCommandLine="&quot;%programfiles%\nodejs\node.exe&quot;" 
          interceptor="&quot;%programfiles%\iisnode\interceptor.js&quot;" />

希望能帮助到你。 同一模块也有助于在Azure上运行的Node.js应用程序(泊坞窗的基础设施可能会使用相同的模块以及)。

附加参考文献: 安装iisnode在Windows

PS:您可能需要安装相应的iisnode模块版本,根据您的IIS版本(快递/常规等)。

我的Windows 7 64位操作系统W / IIS 7.5。 我安装iisnode 。 在那之后,我按照说明上列出该页面 。 然后装上我的Node.js应用程序http://localhost:82/ 。 您可能还必须给用户IIS_IUSRS适当的权限( READ ),以你在哪里托管您的Node.js Web应用程序和它的父文件夹以及文件夹(欢迎新花样!)。

我工作web.config从本地主机上的节点网络应用程序:82所示。 请编辑按您的机器。

<configuration>
    <system.webServer>

        <!-- indicates that the server.js file is a node.js application
        to be handled by the iisnode module -->

        <handlers>
            <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
        </handlers>

<globalModules>
    <add name="iisnode" image="C:\Program Files (x86)\iisnode\iisnode.dll" />
</globalModules>
        <rewrite>
            <rules>
                <rule name="sendToNode">
                    <match url="/*" />
                    <action type="Rewrite" url="server.js" />
                </rule>
            </rules>
        </rewrite>

    </system.webServer>
</configuration>

准系统例如server.js如下。 除非它已经安装,请安装Express的Node.js的。

var express = require('express');

var app = express();

app.get('/', function (req, res) {
    res.send('Express is working on IISNode!');
});

app.listen(process.env.PORT);


文章来源: Visual Studio Docker failing on node.js not being in path when it is