我试图创建PDF使用html-pdf nod软件包和.net核心mvc应用程序。在当地工作很好。当部署到Azure web应用程序时,我会遇到以下错误。
网页中的:
SocketException:现有连接被远程主机的未知位置强行关闭
IOException:无法从传输连接读取数据:现有连接被远程主机强制关闭。
Azure web应用程序控制台:
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: D:\home\site\wwwroot\Node\createPdf.js:5
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: stream.pipe(result.stream);
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: ^
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices:
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: TypeError: Cannot read property 'pipe' of undefined
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: at D:\home\site\wwwroot\Node\createPdf.js:5:16
2019-11-22 06:39:58.754 +00:00 [Error] Microsoft.AspNetCore.NodeServices: at D:\home\site\wwwroot\node_modules\html-pdf\lib\pdf.js:58:21
2019-11-22 06:39:58.755 +00:00 [Error] Microsoft.AspNetCore.NodeServices: at respond (D:\home\site\wwwroot\node_modules\html-pdf\lib\pdf.js:126:14)
2019-11-22 06:39:58.755 +00:00 [Error] Microsoft.AspNetCore.NodeServices: at Timeout.execTimeout (D:\home\site\wwwroot\node_modules\html-pdf\lib\pdf.js:91:5)发布于 2019-12-06 10:35:13
这似乎是由于沙箱限制。您可以根据您的需求利用Azure应用程序服务容器。
标准/本机Azure Web应用程序在称为沙箱的安全环境中运行。每个应用程序都运行在自己的沙箱内,将其执行与同一台机器上的其他实例隔离开来,并提供了额外的安全和隐私,否则Azure Web应用程序沙箱是不可用的。
因此,从本质上说,Azure在运行于IIS上的ASP.NET或Node.js等Windows上提供了预定义的应用程序栈。预先配置的Windows环境将操作系统从管理访问、软件安装、对全局程序集缓存的更改中锁定,并且不允许在平台上注册COM组件。诸若此类。如果应用程序需要比预先配置的环境所允许的更多访问权限,则可以部署自定义Windows容器。
有关此主题的更多详细信息,请查看这些文档:
在Azure Azure中运行自定义Linux容器
https://stackoverflow.com/questions/58988939
复制相似问题