问题标签 [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.
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
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 处获取资源。
这是我的配置的当前版本:
node.js - 我应该使用不同的套接字连接还是不同的命名空间?
我的 socket.io 实现中有不同的通道,并且将与连接到这些通道的客户端交换大量数据。所以我有点困惑,我应该在socket.io中使用命名空间概念,它为同一套接字连接下的每个通道创建单独的命名空间,还是应该在每个通道的不同端口上创建不同的套接字连接?请给我关于这两个选项将如何影响性能等的建议?
谢谢
iisnode - 如何在 iisnode 上运行 Etherpad Lite
如何使用 iisnode 在 IIS 上运行 Etherpad Lite?
(经过更多调查后于 2013-04-23 更新)
我的步骤(第一次尝试)
- 安装 Etherpad Lite
c:\eplite
并确保它在与 start.bat 一起运行时工作。 - 为 IIS 安装 URL 重写模块(iisnode 需要)。
- 安装 iisnode。
- 授予 IIS_IUSRS 对整体
c:\eplite
的完全控制权(有点矫枉过正,但要确保没有访问问题)。 - 配置指向
c:\eplite
. - 移至。
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-4 + 配置指向 c:\eplite\node_modules\ep_etherpad-lite(Web.config 位置)的 IIS 网站 +
node_modules\ep_etherpad-lite
从 Web.Config 中的任何位置删除路径。结果与原始步骤 1-6 相同。步骤 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 上运行。
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,所以可能不是中文金盾问题。
我可以提供任何信息。
任何帮助将不胜感激。
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 应用程序时,也会出现该错误。任何帮助将不胜感激。
node.js - 如何为 Web 应用程序运行 Node.JS 服务器?
信息:我对 node.JS 很陌生!
我编写了一个示例服务器,可以监听端口 XXXX 上的 http 请求。当我从命令行(Windows)运行此服务器时,它似乎运行良好。它响应在浏览器中打开时对 localhost:XXXX 的请求。
问题:这是应该如何工作的?为了让节点服务器运行,是否应该始终打开一个 CMD 提示符以供服务器侦听请求?我不能用 IISNode 做“某事”吗?
我了解,如果我向 JS 文件发出请求,该文件在 IISNode 中记为 Node.JS 文件,并且 NODE 应该处理它;然后我会让 Node 为我处理请求。但这假设 IIS 是我的 Web 服务器,并且特定请求可以由 Node.js 处理。
我希望我在这里有意义!:)
iisnode - 使用iisnode时如何获取端口号?
我有一个运行良好的简单服务器(如下),问题是 process.env.PORT 的值不是我预期的数字,而是一个字符串值,如 "\\.\pipe\d226d7b0-64a0- 4d04-96d4-a75e1278b7a9"。如何获取 http 侦听器正在使用的端口的实际数值?
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?
asp.net - 如何在 Visual Studio 中的 iisnode 上运行节点应用程序
我已经设法使用 node.js 运行一个节点应用程序,但我需要在我的 asp 应用程序上运行该应用程序。因此,我已经安装了 iisnode!但遗憾的是,没有关于如何使用 iisnode 运行节点应用程序的完整文档!那么你能帮助我并指导我如何使用 iisnode 在 Visual Studio 中运行节点应用程序吗?
提前致谢 !