使用Visual Studio 2017(15.7.5),应用程序正常运行。但是,发布到IIS 7.5时,尝试访问浏览器时出现以下错误:
处理请求时发生未处理的异常。
AggregateException:发生一个或多个错误。 (发生一个或多个错误。(退出NPM脚本“开始”时未指示Angular CLI正在侦听请求。错误输出为:npm ERR!路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
npm ERR!代码ENOENT
npm ERR! errno -4058
npm ERR! syscall打开
npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
npm ERR! enoent这与npm无法找到文件有关。
npm ERR! enoent
npm ERR!可以在以下位置找到此运行的完整日志:
npm ERR! C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm-cache_logs \ 2018-08-01T14_50_15_092Z-debug.log
))
System.Threading.Tasks.Task.GetResultCore(bool waitCompletionNotification)
InvalidOperationException:NPM脚本“开始”已退出,但未指示Angular CLI正在侦听请求。错误输出为:npm ERR!路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
npm ERR!代码ENOENT
npm ERR! errno -4058
npm ERR! syscall打开
npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
npm ERR! enoent这与npm无法找到文件有关。
npm ERR! enoent
npm ERR!可以在以下位置找到此运行的完整日志:
npm ERR! C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm-cache_logs \ 2018-08-01T14_50_15_092Z-debug.log
Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.StartAngularCliServerAsync(字符串sourcePath,字符串npmScriptName,ILogger记录器)
堆栈查询Cookie标头
AggregateException:发生一个或多个错误。 (发生一个或多个错误。(退出NPM脚本“开始”时未指示Angular CLI正在侦听请求。错误输出为:npm ERR!路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
npm ERR!代码ENOENT npm ERR! errno -4058 npm错误! syscall打开npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
npm ERR! enoent这与npm无法找到文件有关。 npm ERR! enoent
npm ERR!此运行的完整日志可以在以下位置找到:
npm ERR! C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm-cache_logs \ 2018-08-01T14_50_15_092Z-debug.log
))
System.Threading.Tasks.Task.GetResultCore(bool waitCompletionNotification)
Microsoft.AspNetCore.SpaServices.Extensions.Util.TaskTimeoutExtensions.WithTimeout(任务任务,TimeSpan timeoutDelay,字符串消息)
Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext上下文,HttpClient httpClient,Task baseUriTask,CancellationToken applicationStoppingToken,bool proxy404s)
Microsoft.AspNetCore.Builder.SpaProxyingExtensions + <> c__DisplayClass2_0 +
d.MoveNext() Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext上下文)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文)
显示原始异常详细信息
InvalidOperationException:NPM脚本“开始”已退出,但未指示Angular CLI正在侦听请求。错误输出为:npm ERR!路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
npm ERR!代码ENOENT npm ERR! errno -4058 npm错误! syscall打开npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
npm ERR! enoent这与npm无法找到文件有关。 npm ERR! enoent
npm ERR!此运行的完整日志可以在以下位置找到:
npm ERR! C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm-cache_logs \ 2018-08-01T14_50_15_092Z-debug.log
Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.StartAngularCliServerAsync(字符串sourcePath,字符串npmScriptName,ILogger记录器)
显示原始异常详细信息
System.InvalidOperationException:NPM脚本“开始”已退出,但未指示Angular CLI正在侦听请求。错误输出为:npm ERR!路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
npm ERR!代码ENOENT
npm ERR! errno -4058
npm ERR! syscall打开
npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
npm ERR! enoent这与npm无法找到文件有关。
npm ERR! enoent
npm ERR!可以在以下位置找到此运行的完整日志:
npm ERR! C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm-cache_logs \ 2018-08-01T14_50_15_092Z-debug.log
---> System.IO.EndOfStreamException:尝试读取流的末尾。
在Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.StartAngularCliServerAsync(String sourcePath,String npmScriptName,ILogger logger)
---内部异常堆栈跟踪的结尾---
在Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddleware.StartAngularCliServerAsync(String sourcePath,String npmScriptName,ILogger logger)
生成的日志如下:
如果以“ ok”结尾的信息,则可以正常工作
详细cli ['D:\ Programas \ nodejs \ node.exe',详细cli'D:\ Programas \ nodejs \ node_modules \ npm \ bin \ npm-cli.js',
详细cli'run',
详细cli'start',
详细cli'-',
详细cli'--port',
详细cli'52476']
使用npm@5.6.0
获取信息 使用node@v8.11.3
的信息 详细堆栈错误:ENOENT:没有此类文件或目录,请打开“ C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json”
详细的CWD C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp
详细的Windows_NT 6.1.7601
详细的argv“ D:\ Programas \ nodejs \ node.exe”“ D:\ Programas \ nodejs \ node_modules \ npm \ bin \ npm-cli.js”“运行”“开始”“-”“-端口”“ 52476“
详细节点v8.11.3
详细的npm v5.6.0
错误路径C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json
错误代码ENOENT
错误errno -4058
错误的系统调用打开
错误ENTEN ENOENT:没有这样的文件或目录,打开'C:\ Sites \ NewPro \ Microsum.NewPro.ERP \ ERPApp \ package.json'
error enoent这与npm无法找到文件有关。
详细出口[-4058,是]
任何建议都非常欢迎。
答案 0 :(得分:1)
迟来的响应,但如果有人仍在使用更高版本的.NET Core / Angular SPA遇到类似问题;
我已经使用.NET Core 3.1生成了空白模板,并且它是Angular SPA模板,该模板将始终在开发模式下成功运行,但是发布时会失败,并出现与上述相同的错误。在我看来,这总是很奇怪,因为如果您已经发布了应用程序,甚至不应该正在寻找package.json-它应该正在加载静态文件。
问题在于它所使用的开发环境-默认情况下,我的ASPNETCORE_ENVIRONMENT变量设置为Development,这意味着Startup.cs逻辑将所有if(env.IsDevelopment())检查为true,即使在发布。最简单的解决方法是在VS项目中的“属性”>“发布配置文件”下创建一个新的发布配置文件。将其命名为Production.pubxml或其他名称,然后向其中添加以下元素:<EnvironmentName>Production</EnvironmentName>
。然后,从“构建”>“发布”菜单进行发布时,从下拉列表中选择“文件”。这会将特定于此应用程序的环境变量添加到web.config文件中,从而允许SpaServices中间件实际完成其工作,而不会尝试启动节点服务器。
或者,您可以只添加
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
</environmentVariables>
到<aspNetCore
元素内已发布的web.config文件中,该元素默认为自动关闭。缺点是,每次发布应用程序时都需要重新添加它,直到创建发布配置文件为止。
答案 1 :(得分:0)
在Visual Studio的解决方案资源管理器中,选择文件夹 ClientApp 中的文件 package.json ,然后更改属性复制到输出目录 >进行始终复制。
答案 2 :(得分:0)
我能够通过忽略Visual Studio的标准视觉模板并创建AspNet Web应用程序项目,然后再创建角度应用程序来解决问题。
我把the project code in github供有相同问题的人使用。
我为想要手动构建项目的任何人生成了a detailed step-by-step with prints: