Articles of iisnode

Node.exe陷于100%的CPU

我有一个ExpressJS node.js应用程序运行在Windows Server 2016 VM上的IISNode与4核心和32GB的内存。 我可以为每个内核设置一个进程,所以我有4个node.exe正在为我的应用程序运行。 节点版本是v6.10.3。 这是资源通常的样子: 我可以看到节点垃圾收集似乎正在发生,因为内存波动。 如截图中所示,它将正常hover在峰值工作的下方。 不过,我正试图find其中一个进程的原因,以达到100%的CPU利用率。 每当发生这种情况,我被迫杀死node.exe,因为我的整个应用程序停滞。 它将停留在高峰CPU,所有进一步的要求,然后旋转。 什么会导致node.exe中的CPU利用率高,以及如何locking在100%? 这是由于垃圾收集拖延? 什么工具可以用来找出什么node.exe停滞,以更好地debugging我的应用程序? IISNode应该作为一个负载平衡器,并将所有请求委托给另一个核心? 现在,我被迫在一个定时器上回收我的应用程序池,以完全终止所有工作节点进程并重新启动它们。 这限制了应用程序长时间的运行。 我感谢任何见解!

iisnode数据库连接池

我通过托pipe在Windows Server 2012 R2 – IIS 8.5上的iisnode运行Node.js Web应用程序 。 在客户端请求应用程序需要从服务器数据库( PostgreSQL )查询数据。 在独立的Node.js应用程序中,通常会实现数据库客户端池(通过pg模块或全尺寸ORM ,例如Squeelize.js )。 然而, iisnode启动了一个Node.js进程每个客户端请求,渲染一个appwise池无用(据我所知),虽然它似乎与pg模块池实例工作。 我是相当新的IIS ; 在给定上述设置的情况下,我将如何实现高效的数据库连接池(或合适的替代品)? 例如: IIS / iisnodepipe理数据库连接,perhabs通过单个客户端连接请求? 使用appwise客户端池还是要走的路? 是使用IIS模块可取吗? 编辑:Tomasz Janczuks iisnode GitHub站点上的MongoDB的链接教程如果我没有弄错,GitHub站点使用单个客户端连接,但是适合于多个客户端和可能复杂的查询附近的生产使用? 我想坚持设置/configurationNode.js内的连接,如果这是可能的和合理的。

实现上传到单独的文件服务器的最佳方法?

所以我们有一个由node.js,express和mongodb组成的网页。 我在DMZ有2个服务器,没有join到AD中。 其中一台服务器将在网页上提供服务,另一台服务器将纯粹接收并提供video文件。 服务器正在运行iis和iisnode。 目前该页面正在使用MULTER上传文件,这对于上传到运行代码的相同服务器来说工作良好。 上传到单独的服务器被certificate是困难的,而我的谷歌search没有让我更接近解决scheme。 我希望上传和下载直接在客户端和video服务器之间,而不是通过networking服务器。 任何提示如何处理这个?

使用iisnode和WebMatrix进行Windows身份validation

我尝试使用IIS Express 7.5(通过WebMatrix)托pipe的node.js编写一个简单的站点。 我想使用集成的Windows身份validation。 我configuration了一些类似的文章中描述的applicationhost.config 。 另外我也configuration了web.config 。 <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> 现在,当请求网站时,它要求凭据。 现在这很好。 然后我提供正确的域凭据,并得到一个错误401.1 那么,信任区的网站和Fidler说Kerberos门票提供。 怎么了? 我检查了跟踪,并得到以下错误: <EventData> <Data Name="ContextId">{00000000-0000-0000-3F03-0080000000F8}</Data> <Data Name="ModuleName">WindowsAuthenticationModule</Data> <Data Name="Notification">2</Data> <Data Name="HttpStatus">401</Data> <Data Name="HttpReason">Unauthorized</Data> <Data Name="HttpSubStatus">1</Data> <Data Name="ErrorCode">2147942485</Data> <Data Name="ConfigExceptionInfo"></Data> </EventData> <RenderingInfo Culture="en-US"> <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode> <Keywords> <Keyword>RequestNotifications</Keyword> </Keywords> <freb:Description Data="Notification">AUTHENTICATE_REQUEST</freb:Description> […]

使用iisnode,nodejs和node-soap库时,Win32应用程序无效

我在使用iisnode和node.js 0.10.20在IIS 7,Windows Server 2008上设置Node.js / Node-soap服务时遇到了一些问题。 这个相同的设置,使用相同的代码,在另一个服务器上运行,并且完美地工作。 问题是没有logging安装过程,并且把它放在一起的人不能将其迁移到新的服务器。 而且我在Node和IISnode中都没有预先的知识。 这是打印的错误信息: iisnode处理请求时遇到错误。 HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误您正在收到此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。 除了node.exe进程的stdout和stderr的日志之外,还可以考虑使用debugging和ETW跟踪来进一步诊断问题。 下面显示了由node.exe进程到stderr生成的最后一个64k输出: 应用程序已抛出一个未捕获的exception,并终止:错误:%1不是有效的Win32应用程序。 \ node_modules \肥皂\ node_modules \节点外籍\build造\发布\ node_expat.node at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (<Path to application>\node_modules\soap\node_modules\node-expat\lib\node-expat.js:4:13) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at […]

HTTP错误500.0 – 内部服务器错误在ISAPI上调用LoadLibraryEx

我已经在Windows服务器(Windows Server 2008,IIS 7.5)中安装了iisnode。我可以从iisnode检查示例应用程序。 示例工作正常。而且我还创build了C:\ inetpub \ iisnode \ www \文件夹中的应用程序。 它也工作正常。 但是,当我将我的应用程序移到我的域时,会导致问题。 首先它显示了这样的错误 HTTP错误500.21 – 内部服务器error handling程序“iisnode”在其模块列表中有一个错误的模块“iisnode” 为此,我已将Enabled 32位应用程序更改为false。 在这之后我得到错误 HTTP错误500.0 – 内部服务器错误 在ISAPI筛选器上调用LoadLibraryEx“C:\ Program Files(x86)\ Parallels \ Plesk \ isapi \ urlprotect.dll”失败 我安装了以下版本的节点和iisnode IISNode:iisnode-full-iis7-v0.2.2-x64节点:node-v0.10.24-x64服务器:Windows Server 2008 IIS版本:IIS 7.5 我的域已经与Parallels Panel 11.0集成。 请帮助任何一个如何解决这个问题,并为我的域运行我的节点应用程序。

节点无法在IIS中find模块,可以从提示中find

我通过npm install <module>安装了一些模块,当我在命令提示符下运行node时,我可以访问它们,但是当我使用iisnode在IIS下运行应用程序时,出现如下错误: Application has thrown an uncaught exception and is terminated: Error: Cannot find module 'formidable' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\Program Files\iisnode\www\helloworld\hello.js:3:18) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 到底是怎么回事? 如果我使用iisnode是否有另外一种方法来安装模块? 这是我的项目web.config文件: <configuration> <system.webServer> <!– indicates […]

无法获得IISNode,socket.io和express一起工作

请阅读我的问题,甚至会收到一小段忠告。 我在Google Chrome中收到以下错误: GET http://localhost/socket.io/?EIO=3&transport=polling&t=1419089743449-2 404 (Not Found) 我的文件夹设置如下: 本地主机 亲 上市 socket.io/socket.io.js cssfile.css jsfile.js app.js node_模块 在我看来,客户端的握手请求是错误的,因为错误应该是localhost / pro / public / socket.io /等等等等。 我正在使用以下设置: web.config: <handlers> <add name="iisnode" path="app.js" verb="*" modules="iisnode" /> </handlers> <rewrite> <rules> <rule name="DynamicContent"> <match url="/pro/" negate='True'/> <!–<conditions> <add input="pro" matchType="IsFile" negate="True"/> </conditions>–> <action type="Rewrite" url="app.js"/> </rule> <rule name="LogFile" patternSyntax="ECMAScript"> […]

iisnode处理请求时遇到错误。 HTTP状态:500

iisnode处理请求时遇到错误。 HRESULT:0x2 HTTP状态:500 HTTP子状态:1001 HTTP原因:内部服务器错误 这是一个非常简单的节点/快速应用程序,我们不能在iisnode下运行。 我们在ETW跟踪中看到错误,例如:iisnode请求处理失败,原因是iisnode无法识别iisnode无法build立到node.exe进程的命名pipe道连接 在节点输出中看到的最后一件事情是:服务器Express http服务器侦听端口\。\ pipe \ 15524b7e-249a-4464-b41a-eddab028342e 我们在哪里可以看看发生了什么? 1)节点应用程序通过键入node server.js从文件夹中的命令行正常工作。 2)在JavaScript中看似没有什么“抛出”,我们有这样的代码: process.on('uncaughtException', function (err) { console.log(err); fs.writeFileSync("exception.txt", err, "utf8"); }) 3)web.config如下: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <!– Indicates that the server.js file is a node.js site to be handled by the iisnode module –> <add name="iisnode" path="server.js" verb="*" modules="iisnode"/> […]

AngularJS中的IIS URL重写与angular度HTML5模式的节点

我有一个构build在Azure(IIS)托pipe的Node.JS之上的AngularJS应用程序,并使用HTML5模式。 在我不使用Node.JS的情况下,只使用AngularJS和IIS,我可以重写URL,以便在IIS Web.config中使用以下规则刷新页面不会导致404错误: <rule name="AngularJSHTML5Mode" stopProcessing="true"> <match url=".*"/> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> <add input="{REQUEST_URI}" pattern="^/(api)" negate="true"/> </conditions> <action type="Rewrite" url="/"/> </rule> 但是,在Node.js(使用ExpressJS)上使用Angular时,即使在IIS中使用上述规则,也会在页面刷新时收到“Can not GET / myroute”等错误。 有什么我需要在Server.js或Web.config中configuration不同的规则。 这是我目前在Express中的内容。 我正在使用Express 4: // Initialize Express App var app = express(); var listener = app.listen(1337, function () { console.log('Listening on port ' […]