标签: iisnode

基于Node.js + Express的应用程序未运行iisnode

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

app.js:

var express = require('express');
var app = express();
app.use(express.static(__dirname + "/public"));

var port = process.env.PORT || 2709;
app.listen(port, function() {
  console.log('Listening on port ' + port);
});
Run Code Online (Sandbox Code Playgroud)

的package.json:

{
  "name": "TestExpress",
  "version": "0.0.0",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}
Run Code Online (Sandbox Code Playgroud)

web.config中:

<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
    </handlers>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

公共/ index.html的:

<!doctype html>
<html>
<head>
  <script language="javascript" type="text/javascript" src="js/jquery.js"></script>
  <script language="javascript" type="text/javascript">
    $(document).ready(function() {
      console.log("READY!");
      $("#hello").html("Hello, World!");
    });
  </script> …
Run Code Online (Sandbox Code Playgroud)

iis node.js express iisnode

8
推荐指数
2
解决办法
1万
查看次数

使用iisnode和express时出现500.1013错误

我在我的机器上运行了一个快速应用程序.我甚至可以使用节点服务器而不是issnode 在生产中运行它.

当试图让它在iisnode中运行时,我在尝试运行我的快速应用程序时遇到以下错误:

HRESULT:0x6d
HTTP状态:500
HTTP subStatus:1013
HTTP原因:内部服务器错误

您收到此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabled配置设置为"true".

除了node.exe进程的stdout和stderr的日志之外,请考虑使用调试和ETW跟踪来进一步诊断问题.

node.exe进程尚未向stderr写入任何信息,或者iisnode无法捕获此信息.经常的原因是iisnode模块无法创建日志文件来捕获node.exe的stdout和stderr输出.请检查运行node.js应用程序的IIS应用程序池的标识是否具有对node.js应用程序所在服务器上的目录的读写访问权限.或者,您可以通过将web.config的system.webServer/iisnode/@loggingEnabled元素设置为"false"来禁用日志记录.

我正在通过以下URL访问它,基于iisnode示例:

HTTP://本地主机/节点/ parislight /巴黎/

我在我的快递应用程序(C:\ Program Files\iisnode\www\express\bin)中的iisnode上给出了读写延迟,以防万一,在整个快递应用程序文件夹(C:\ Program Files\iisnode\www) \表达).没有改变.

在iisnode问题上看到了一个关于它的公开话题,但没有提供解决方案.

我也尝试通过loggingEnabled :"false"web.config快递应用程序的文件中使用来禁用登录,但它似乎没有效果,并且消息不断出现.

我的应用程序正在"默认网站"池上运行,您可以在此处看到: 在此输入图像描述

我给整个文件夹提供了读/写权限:

在此输入图像描述

同样适用于IIS_IUSRS帐户以防万一:

在此输入图像描述

node.js express iisnode

8
推荐指数
0
解决办法
3783
查看次数

iisnode - IIS7.5:405执行PUT请求时不允许使用方法

我开始用iisnode和expressjs做一些实验,用节点创建一个类似API的REST.

所以在server.js上我创建了类似的东西

app.put("/test", function(req, res){
    ...
});
Run Code Online (Sandbox Code Playgroud)

但是,当我执行PUT请求时,我405 Method not allowed从IIS 7.5安装中获得了一个.

关于如何解决这个问题的任何想法?

顺便说一句,我已经google了,并尝试在不同的处理程序映射中添加PUT动词,但没有成功......

iis-7.5 node.js express iisnode

7
推荐指数
1
解决办法
5240
查看次数

无法下载msnodesql-0.2.1-v0.10-x64.msi

我无法安装msnodesql.

本来我试过

npm install node-sqlserver
Run Code Online (Sandbox Code Playgroud)

...并且这警告它已被msnodesql取代.

我成功安装了Node.js,iisnode,我看到样本Hello.js正在服务(yayee,很棒),所以至少node和iisnode正在工作.

我安装了先决条件:

Node.js - use the latest version if possible, but it has been tested on node 0.6.10 and later
node-gyp - latest version installed globally (npm install -g node-gyp)
python 2.7.x - for node-gyp (make sure it is in the path)
Visual C++ 2010 - the Express edition is freely available from Microsoft
SQL Server Native Client 11.0 - available as Microsoft SQL Server 2012 Native Client found in the SQL Server 2012 …
Run Code Online (Sandbox Code Playgroud)

node.js iisnode node-sqlserver

7
推荐指数
1
解决办法
5221
查看次数

使用StaticFiles URL Rewrite在IISNODE中提供静态文件

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

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

<rule name="StaticContent">
  <action type="Rewrite" url="public{REQUEST_URI}"/>
</rule>
Run Code Online (Sandbox Code Playgroud)

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

node.js iisnode

7
推荐指数
2
解决办法
5936
查看次数

在iis上运行反应同构

我正试图在iis 上使用带有iisnode的 node.js来运行反应

我已经安装了最新的节点和最新的iisnode,并使用此stackoverflow作为指南,但无法获得过去的错误500. 如何为Web应用程序运行Node.JS服务器?

关于如何在iis上执行此操作的任何指南?

iis node.js iisnode reactjs isomorphic-javascript

7
推荐指数
1
解决办法
416
查看次数

客户端未通过IIS节点从SocketIO接收事件

我有一个Web应用程序,它与通过IIS节点托管的NodeJS服务器建立套接字连接.当我解决了我最初拥有的客户端上的404轮询错误时,似乎连接正常.但是现在看起来客户端没有从IIS节点接收套接字事件.

我的理论是,因为IIS节点就像一个代理,发送回客户端的事件正在IIS节点级别停止.

exports.register = function(socket) {
    User.schema.post('save', function (doc) {
        console.log("Save socket");
        onSave(socket, doc);
    });
}

function onSave(socket, doc, cb) {
    socket.emit('User List Update', doc);
}
Run Code Online (Sandbox Code Playgroud)

在Node中,上述事件触发,但在前端未收到.

客户端看起来像这样:

var socket = io.connect("http://myinternallyhostedserver:7777/reception");

socket.on('User List Update', function () {
  console.log('Received socket event!');
  if (vm.enableAlert) {
      vm.alertSound.play();
  }
  vm.getUsers();
});
Run Code Online (Sandbox Code Playgroud)

我的web.config文件如下所示:

<configuration>
    <appSettings>
        <add key="virtualDirPath" value="/reception" />
    </appSettings>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="server/app.js" verb="*" modules="iisnode" />
        </handlers>
        <iisnode enableXFF="true" />
        <webSocket enabled="false"/>
        <rewrite>
            <rules>
                <rule name="reception">
                    <match url="/*" />
                    <action type="Rewrite" url="server/app.js" …
Run Code Online (Sandbox Code Playgroud)

iis node.js express socket.io iisnode

7
推荐指数
1
解决办法
300
查看次数

始终使用 IISNode 运行进程

有谁知道一种无需客户端请求就可以让 JavaScript 文件或文件集始终在 IISNode 下运行的方法?这个想法是让脚本作为服务运行,但让它们在 IISNode 下运行。

谢谢!csh3

node.js iisnode

6
推荐指数
1
解决办法
1059
查看次数

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

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

网页配置

<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
    </handlers>

    <rewrite>
      <rules>
        <rule name="DynamicContent">
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
          </conditions>
          <action type="Rewrite" url="server.js"/>
        </rule>
      </rules>
    </rewrite>

    <iisnode watchedFiles="*.js;lib\*;node_modules\*;styles\*;ui\*;views\*" />

  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

服务器.js

var port = process.env.NODE_ENV == 'production' ? process.env.PORT : 3000;

require('./lib/server').listen(port);
Run Code Online (Sandbox Code Playgroud)

网站链接

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

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

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

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

<configuration>
  <system.webServer>
    <handlers>
      <add …
Run Code Online (Sandbox Code Playgroud)

iis iis-7 node.js iisnode

6
推荐指数
1
解决办法
2219
查看次数

如何在 Azure 应用服务上运行使用 ts-node 开发的节点应用程序

azure 应用服务上的节点应用程序的大部分文档都是围绕使用 iisnode 模块处理程序运行的,该处理程序使用 app.js 或 server.js 之类的文件。

如果我们想运行我们一直使用 typescript 开发并使用ts-node运行的相同应用程序怎么办?

可能的一种选择是将打字稿文件编译成 javascript 文件,但这会增加创建的文件的开销,这是我不想要的。

azure node.js iisnode typescript azure-web-app-service

6
推荐指数
1
解决办法
1106
查看次数