问题标签 [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 投票
0 回答
1048 浏览

node.js - 尝试转移到 iisnode 时节点应用程序 404

我正在尝试将 nodejs 应用程序从我的开发机器传输到我们的 IIS 服务器。它在我的机器上运行得非常好,但是当我将它传输到 IIS 时总是得到 404。

目录结构是这样的:

当我去:localhost/node/mysite我得到一个404。

这是我的内容web.config

我尝试通过在它们前面加上前缀来更新我的快速路线,node/mysite但这并没有奏效。

我可以告诉该节点正在接收请求,因为我已将其设置为记录所有请求,并且日志文件中有以下内容:

0 投票
2 回答
7229 浏览

node.js - 使用 StaticFiles URL Rewrite 在 IISNODE 中提供静态文件

我正在尝试在 IIS 上部署 Node.js 应用程序。我在 GitHub 存储库 ( https://github.com/tjanczuk/iisnode/tree/master/src/samples )上看到了示例。

我被困在提供静态文件上。像普通的 Node 应用程序一样,我将静态文件存储在名为 public 的文件夹中。根据几个博客/论坛的建议,我在 web.config 中添加了以下规则:

但它不起作用。如果有人有演示此问题的示例应用程序,那将有很大帮助。

0 投票
2 回答
13731 浏览

node.js - 基于 Node.js + Express 的应用程序未与 iisnode 一起运行

我正在用 node.js + express 和 iisnode 做一些实验。我有以下非常简单的应用程序,位于C:\tsapp-deploy\tsappsvr\TestExpress\0.0.0

应用程序.js:

包.json:

网络配置:

公共/index.html:

我的配置是:Windows 8.1、IIS 8;iisnode 版本 0.2.11,节点版本 v0.10.28。

从命令行 ( C:\tsapp-deploy\tsappsvr\TestExpress\0.0.0>node app.js) 启动时,应用程序按预期运行:在浏览器中,我转到http://localhost:2709/“Hello, World!”。

我的 IIS 当前正在运行其他基于 node.js 的应用程序,而不是使用来自类似位置(即 from C:\tsapp-deploy\tsappsvr\appname\x.y.z\index.js)的 express,所以我认为它应该正确配置,但是当我尝试从浏览器运行这个应用程序时,输入http://localhost/tsappsvr/TestExpress/0.0.0/app.js我得到 404 Not在 Chrome 和 Firefox 中找到(在 IE 中)或“无法获取 /tsappsvr/TestExpress/0.0.0/app.js”。

我想问题可能出在我的 web.config 中,但我不知道如何更改它以使我的应用程序正常工作。按照类似问题的其他答案中的建议,我已经尝试了对 web.config 的一些更改,但还没有成功。有什么建议么?

提前致谢。

0 投票
0 回答
4029 浏览

node.js - socket.io 和 iisnode 禁止 403

我有一个 node.js socket.io 服务器应用程序,我刚刚在 Windows Server 2012 的 IIS 8.5 中移动到 IISNode。它设置为使用 https。

当我在本地浏览时一切正常,但是当我尝试使用完整域名访问它时,当我尝试打开 Web 套接字连接时出现错误 403(禁止)。

与 Dante Devine Comedy socket.io 示例一样,我的实际应用程序也会出现同样的问题。Tomasz Janczuk iisnode Dante 示例

浏览时的标准样品

或与

在同一台服务器上本地打开 socket.io Web 套接字连接

并正常工作产生以下网络捕获:

工作网络捕获

显然以上在外部访问(不是本地主机)时不起作用,所以我将网络套接字连接更改为

这失败并出现错误 403,如下所示:

在此处输入图像描述

我的 web.config 与 Dante 示例提供的相同,包含:

我是 node.js、socket.io 和 iisnode 的新手,对 IIS 有点陌生,所以这可能是一个简单的 iis/网站/https 问题,与 iisnode 无关。

如果有人有任何建议,我将不胜感激。

约翰。


按照 CuriousGuy 的建议,我现在得到以下网络捕获,表明切换到 Web 套接字协议尚未发生。显示的实际错误是

不再给出 403 错误

我尝试从更改服务器 io.set

但这显然是一个错误,因为然后我收到一个错误,即 io 未定义,这似乎有点奇怪。

如果我检查提琴手中的网络流量,我会看到:

提琴手的输出

当我点击最后一个网络线路时,提琴手中的以下错误消息:

iisnode 在处理请求时遇到错误。

服务器 stderr 日志显示:

0 投票
3 回答
7514 浏览

javascript - express.js 网站图标未显示

我目前正在运行一个简单的 express.js 示例,只是想让网站图标正常工作。在本地一切正常,但是当我将它上传到我的生产服务器时,它只显示默认的图标。我试过清除缓存,但生产服务器图标似乎不想出现。我在 Windows 2008 aws 服务器上的 iisnode 上运行所有内容。

有谁知道可能是什么问题?

0 投票
1 回答
239 浏览

node.js - IISNode exec 静默失败

我正在尝试使用 GitHub webhooks 和 node.js 构建一个自动代码拉取服务。当我昨天运行这段代码时,它就像一个魅力,并将正确的存储库拉到正确的文件夹,但今天它只是开始默默地失败。它适用于我的开发机器。

如磁贴中所述,我使用 IISNode 在 IIS 下运行它,但我开始怀疑是否应该在没有 IIS 的情况下托管它。这是我写的代码。

为什么这突然停止工作?

编辑:我为此在 issnode 的 github 页面上打开了一个问题。https://github.com/tjanczuk/iisnode/issues/352

edit2:添加一些调试信息 http://tjanczuk.github.io/iisnode/iisnode-debug.html#iisnode_ver=0.2.11&node=node.exe&dns=DNS&worker_pid=600&node_pid=1200&worker_mem_ws=11072&worker_mem_pagefile=4728&node_mem_ws=12820&node_mem_pagefile=12696&_process_req=app 1&app_active_req=1&worker_total_req=1&np_retry=1&req_time=0&hresult=0

edi3:似乎我去 .../app.js/debug/ 时遇到了问题,它获得了标题,但似乎永远在等待从服务器获得响应。

0 投票
1 回答
1175 浏览

caching - 使用 IISNode 进行客户端缓存

我在 IIS 8.5 上运行 IISNode,无法启用静态文件的客户端缓存。使用 IISNode 无需接触节点即可提供文件。当文件与 IISNode 一起提供时,它们包含Cache-Control: no-cache标题。

如果我只托管节点并绕过 IIS 和 IISNode,我会得到Cache-Control:public, max-age=604800标题。

某处 IIS 或 IISNode 正在设置缓存控制值。我似乎无法在 IIS 中更改它,因为当我这样做时Cache-Control:no-cache,public,max-age=604800

如何防止将 no-cache 添加到缓存控制标头?

0 投票
0 回答
1339 浏览

c# - 在 Asp.Net MVC 应用程序的 VirtualDirectory 中使用 IISNode 在 IIS 内托管 Socket.IO + ExpressJS 应用程序

我有一个 ASP.NET MVC 5 应用程序和一个 NodeJs (Express+Socket.IO) 应用程序。在业务场景中,我必须在 MVC 应用程序中作为子目录运行 NodeJS 应用程序。

为了。例如,

MVC: http: //foo.com NodeJS:http: //foo.com/node

我使用 IISNode(最新版本)在 IIS 8 中托管了这两个应用程序。两个应用程序都使用 websockets。Asp.net 应用程序利用了 SignalR 和 NodeJS,利用了 Socket.IO。我遵循了https://github.com/tjanczuk/iisnode上提供的文档。

问题是当 socket.io.js 在客户端加载并尝试连接到服务器时,它返回 404-Not Found 结果。我已经为 Node 应用程序的应用程序和 server.js 附加了 web.config。我怀疑问题在于 url 重写。

这是server.js

对于 MVC 应用程序 web.config 是标准的自动生成的配置文件。

下面是我的 NodeJs 应用程序的 web.config。

下面是连接到socket io的代码。

NodeJs 应用程序中的所有文件都已正确加载,但不知何故我无法连接到 websocket。

0 投票
0 回答
96 浏览

node.js - IISNode 未加载依赖项

我正在尝试在 Azure 网站上托管此 node.js 应用程序https://github.com/Lapple/ErrorBoard,并首先在 WebMatrix 中创建了一个 node.js 应用程序。

正如应用程序所说,eb.js 是应用程序的入口点,我也在 web.config 中设置了它,但它总是说 # 没有方法“listen”并在第 1 行中断。6 在 eb.js 中。

我认为在定义服务器对象的地方没有加载依赖文件。请帮我解决这个问题。

0 投票
2 回答
179 浏览

javascript - Azure 网站中的节点 0.11.x

我正在尝试使用 0.11.x 版本的节点在 Azure 上运行节点应用程序,这样我就可以利用一些新功能(例如生成器和 Koa)。

我已阅读此问题并尝试按照步骤操作,但到目前为止没有成功:

在 Azure 网站上设置节点 v0.11.x 时出错

以下是我执行的步骤:

  1. 在VS2013(update3)中,File => New Project 选择“Blank Microsoft Azure Node.js Web Application”(在Templates/Javascript/node.js下),点击OK

  2. 在 server.js 中,更改最后一行“hello world”以显示节点版本:

    res.end('App running in node version ' + process.version + '\n');

  3. 在与 server.js 相同的文件夹中添加一个新文件“iisnode.yml”,其内容为:

    nodeProcessCommandLine: D:\home\site\wwwroot\bin\node.exe

  4. 将node.exe(版本0.11.13)复制到“bin”文件夹(server.js所在文件夹下)

  5. 右键单击VS中的项目,选择发布,使用所有默认凭据/等创建新网站...然后单击发布

此时,“myproj.azurewebsites.net”页面出现了响应:

但我希望节点版本为 0.11.13。如果我去我的 \bin 文件夹并运行node.exe --version它会吐出:

在本地运行(F5)似乎做正确的事: App running in node version v0.11.13

我很困惑如何让节点 0.11 在 Azure 网站上运行,有什么建议吗?