问题标签 [iisnode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1890 浏览

node.js - 使用 iisnode 在虚拟目录中运行的 node.js express 3 应用程序的 socket.io 路由问题

错误:

尝试访问http://localhost/appDirectory/socket.io给出:
Cannot GET /appDirectory/socket.io

或者换一种说法,当尝试在页面上加载客户端文件时,我收到此错误:
GET http://localhost/appDirectory/socket.io/socket.io.js 404 (Not Found)

如果我将客户端文件作为静态内容加载,则连接行会产生此错误:
GET http://localhost/appDirectory/socket.io/1/?t=1365535131937 404 (Not Found)

服务器代码:

客户端代码:

让这个工作的网络配置文件是......

网络配置:

我的直觉是 express 路由干扰了 socket.io 路由,或者 socket.io 路由与虚拟目录不兼容。我确实看到一些关于 socket.io 命名空间的提及,我确实尝试了以下...

但这似乎并没有解决问题。

我在客户端代码方面尝试了许多不同的方法,但我认为这不是根本问题,http://localhost/appDirectory/socket.io/socket.io.js也不会起作用。

该应用程序作为虚拟目录运行,并建立在:

模块“ express namespace ”似乎使事情正常进行。

我知道 iisnode 被“设计”为作为单独的站点运行,我也知道 express 不喜欢在虚拟目录中,但我很确定这是可能的。

有趣的更新!

换行:

到:

导致 iis 工作进程 w3wp.exe 崩溃...如此
处所示http://i.imgur.com/65RGia3.png?1

但是,该网址http://localhost/appDirectory/socket.io似乎可以正常工作。

修复此 FYI 的尝试失败:

  • 为 iisnode nodeProcessCountPerApplication="1" 添加 web.config 设置

可能的解决方案:

如果您遇到同样的问题,我发现这可能会对您有所帮助...
http://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html

0 投票
3 回答
20237 浏览

node.js - IIS、Node.js 和带有 IISNode 的 Web 应用程序未使用虚拟目录正确配置

我在 IIS 中有以下设置:

  • 默认网站 (www.foo.com) 托管标准 html 网站
  • 运行 IIS 节点的默认网站 (www.foo.com/bar) 下的 Web 应用程序
  • Node 项目正在使用 express

我一辈子都无法正确配置这个东西,所以当我点击 Web 应用程序时,它会正确地提供节点应用程序。我认为我的问题在于 web.config。任何人都可以帮我编写一个正确的 web.config 以使其正常工作吗?我的配置的当前版本将为我提供一个节点响应,该响应说它无法在我输入的任何 url 处获取资源。

这是我的配置的当前版本:

0 投票
1 回答
116 浏览

node.js - 我应该使用不同的套接字连接还是不同的命名空间?

我的 socket.io 实现中有不同的通道,并且将与连接到这些通道的客户端交换大量数据。所以我有点困惑,我应该在socket.io中使用命名空间概念,它为同一套接字连接下的每个通道创建单独的命名空间,还是应该在每个通道的不同端口上创建不同的套接字连接?请给我关于这两个选项将如何影响性能等的建议?

谢谢

0 投票
1 回答
784 浏览

iisnode - 如何在 iisnode 上运行 Etherpad Lite

如何使用 iisnode 在 IIS 上运行 Etherpad Lite?

(经过更多调查后于 2013-04-23 更新)

我的步骤(第一次尝试)

  1. 安装 Etherpad Litec:\eplite并确保它在与 start.bat 一起运行时工作。
  2. 为 IIS 安装 URL 重写模块(iisnode 需要)。
  3. 安装 iisnode。
  4. 授予 IIS_IUSRS 对整体c:\eplite的完全控制权(有点矫枉过正,但要确保没有访问问题)。
  5. 配置指向c:\eplite.
  6. 移至。c:\eplite\node_modules\ep_etherpad-lite\Web.config_c:\eplite

打开 IE,我可以看到“类似”etherpad 的东西,但它不起作用。在主页上没有文本(只有字段和按钮),尝试打开 pad 会导致 pad 界面无法正常工作:

我的步骤(第二次尝试,在这里阅读讨论后)

7.编辑 settings.json:删除port.

8.创建 c:\eplite\start_iisnode.bat:

9.将以下行添加到 Web.Config:

<iisnode nodeProcessCommandLine="c:\eplite\start_iisnode.bat" />

打开IE,这次可以看到正确的起始页了。打开焊盘会导致带文本的焊盘界面失效:

根据进程监视器,它尝试在以下路径中找到此模块:

我还尝试过什么

  1. 步骤 1-4 + 配置指向 c:\eplite\node_modules\ep_etherpad-lite(Web.config 位置)的 IIS 网站 +node_modules\ep_etherpad-lite从 Web.Config 中的任何位置删除路径。结果与原始步骤 1-6 相同。

  2. 步骤 1-4,7-9 + 配置指向 c:\eplite\node_modules\ep_etherpad-lite(Web.config 位置)的 IIS 网站 +node_modules\ep_etherpad-lite从 Web.Config 中的任何位置删除路径。结果与原始步骤 1-9 相同。

版本信息

来自“master”代码分支(最新版本是 1.2.10)的 Etherpad Lite,使用 installOnWindows.bat 构建。

节点版本 0.8.4 x64,iisnode 版本 0.2.4 x64。

在 Windows 8 上运行。

0 投票
1 回答
2530 浏览

node.js - iis7 为 node.js 站点随机返回 404 not found 错误

服务器,位于德国
Windows Server 2008 / IIS 7
node.js 0.8.22
iisnode 0.2.2 x64

网络配置

服务器.js

网站链接

问题:
有时我得到 200 响应,但有时是 404(找不到文件或目录)。

如果我从俄罗斯、德国或美国请求,响应是 200。
如果我从中国请求,有时响应是 404(取决于 ISP、时间和其他因素)。

404 响应看起来像 iis 找不到 server.js

200 响应示例(使用 express Vpn,连接到美国):

404错误示例(没有vpn,来自中国的请求):

iisnode 没有日志,也没有跟踪 404 请求,所以我认为它甚至没有为它们启动。

此服务器上的所有 iisnode/node.js 站点都存在相同的问题。
但是这台服务器上的 Asp Net Mvc 网站无论如何都会返回 200,所以可能不是中文金盾问题。

我可以提供任何信息。
任何帮助将不胜感激。

0 投票
3 回答
3388 浏览

javascript - iisnode 500.21 处理程序“iisnode”在其模块列表中有一个错误模块“iisnode”

在 Server 2008 R2 64bit、IIS 7.5、iisnode 0.2.4.0、node.js 0.10.5 上出现此错误 -

HTTP 错误 500.21 - 内部服务器错误

处理程序“iisnode”在其模块列表中有一个错误模块“iisnode”

详细的错误信息

模块 - IIS Web 核心

通知 - ExecuteRequestHandler

处理程序 - iisnode

错误代码 - 0x8007000d

请求的 URL - https://sub.domain.com:443/node/helloworld/hello.js

物理路径 - C:\Program Files\iisnode\www\helloworld\hello.js

登录方法 - 匿名

登录用户 - 匿名

我已经确保按照我遇到的其他帖子中的建议安装了 asp.net。我可以在 localhost/node/helloworld 访问 helloworld html 站点,但是当我尝试访问 hello.js url 时会发生此错误。当我尝试使用在不同 URL 上编写的 node.js 应用程序时,也会出现该错误。任何帮助将不胜感激。

0 投票
4 回答
43676 浏览

node.js - 如何为 Web 应用程序运行 Node.JS 服务器?

信息:我对 node.JS 很陌生!

我编写了一个示例服务器,可以监听端口 XXXX 上的 http 请求。当我从命令行(Windows)运行此服务器时,它似乎运行良好。它响应在浏览器中打开时对 localhost:XXXX 的请求。

问题:这是应该如何工作的?为了让节点服务器运行,是否应该始终打开一个 CMD 提示符以供服务器侦听请求?我不能用 IISNode 做“某事”吗?

我了解,如果我向 JS 文件发出请求,该文件在 IISNode 中记为 Node.JS 文件,并且 NODE 应该处理它;然后我会让 Node 为我处理请求。但这假设 IIS 是我的 Web 服务器,并且特定请求可以由 Node.js 处理。

我希望我在这里有意义!:)

0 投票
2 回答
2346 浏览

iisnode - 使用iisnode时如何获取端口号?

我有一个运行良好的简单服务器(如下),问题是 process.env.PORT 的值不是我预期的数字,而是一个字符串值,如 "\\.\pipe\d226d7b0-64a0- 4d04-96d4-a75e1278b7a9"。如何获取 http 侦听器正在使用的端口的实际数值?

0 投票
1 回答
530 浏览

handlebars.js - HandlebarsJS 模板中的静态资源版本控制

我正在寻找工具(和技术)来帮助对我的 HandlebarsJS 模板中的静态资产(CSS、JS、图像等)URL 进行版本控制。这适用于使用 并在 Windowsexpress下运行的 Node.js Web 应用程序。iisnode出于性能原因,我希望 IIS 直接提供静态资产——而不是为这个管道使用 Node 或其他连接中间件。

根据我过去的做法(使用经典 ASP),我目前的想法如下:

  • 编写一个将资产名称作为输入的 HandlebarsJS 助手。然后,帮助程序将获取该资产的正确版本(时间戳、校验和等)(可能通过查看预先生成的 JSON 对象),并返回要呈现到模板输出中的资产的正确版本化路径。
    • 例如:{{asset 'images/button.png'}}-->//sc.domain.com/images/<version#>/button.png
  • 使用 Grunt 构建一个文件,其中包含将资产名称映射到版本的 JSON 对象。然后 HandlebarsJS 助手将使用它来构建 URL。
  • 让 IIS 重写传入的 URL 以删除版本#,这样就无需在磁盘上实际复制/版本文件名(我们的站点不需要同时在同一文件名下存在多个版本的资产)。

从理论上讲,这对我的目的来说应该是完美的。但是,在我深入研究并编写所有这些基础架构之前,我想看看是否有人知道 a) 这些项目是否已经存在于某个地方,以及 b) 是否有其他方法更适合 HandlebarsJS?

0 投票
0 回答
863 浏览

asp.net - 如何在 Visual Studio 中的 iisnode 上运行节点应用程序

我已经设法使用 node.js 运行一个节点应用程序,但我需要在我的 asp 应用程序上运行该应用程序。因此,我已经安装了 iisnode!但遗憾的是,没有关于如何使用 iisnode 运行节点应用程序的完整文档!那么你能帮助我并指导我如何使用 iisnode 在 Visual Studio 中运行节点应用程序吗?

提前致谢 !