Articles of iisnode

iisnode和快递

我相信这个问题已经被问了一百万次了,但是到目前为止还没有find解决以下问题的方法。 我有一个使用nodejs和express运行的基本应用程序。 当我在节点中运行应用程序时,它默认将我发送到公共文件夹中的index.html。 即使我没有build立任何路线。 我希望这发生。 我安装了iisnode,并在名为“Devices”的“Default Website”下创build了一个新的应用程序。 我没有改变我的申请。 阅读我需要用web.configsorting一些东西,并决定去与这里提到的configuration(而不是yaml): http://tomasz.janczuk.org/2012/05/yaml-configuration-support-in-iisnode.html 当我尝试在我的浏览器中加载应用程序时,它总是尝试在我的app.js中find路线,并将消息抛回给我,例如: 不能GET /设备/ 我真的用这个拉我的头发,不知道该怎么做! 我是否必须为我的app.js入口点设置静态内容的默认路由? 我有以下的地方: app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); 但是当我从根目录加载应用程序的时候,它仍然没有把我交给index.html: 的 'http://本地主机/设备/' 任何人都可以帮助我呢?

基于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); }); 的package.json: { "name": "TestExpress", "version": "0.0.0", "private": true, "dependencies": { "express": "3.x" } } web.config中: <configuration> <system.webServer> <handlers> <add name="iisnode" path="app.js" verb="*" […]

一个iisnode托pipe的Web应用程序可以找出它托pipe的虚拟path吗?

我正在使用iisnode在Windows上的IIS中托pipe节点Web应用程序。 当我在Web服务器(比如说Express或Restify)上设置我的路由时,我想以独立于IIS托pipe应用程序的path的方式来完成。 例如,我的应用程序可以托pipe在运行IIS的两台机器上的两个不同path上; 第一个可以在/foo托pipe,第二个在/bar 。 假设我的应用程序想要在/baz设置一个路由 – 在第一台机器上,我需要在/foo/bazconfiguration路由,然后在第二台机器上使用/bar/baz ,这意味着复制了一些configuration在IIS中。 是否有可能从iisnode托pipe的应用程序中可靠地找出path,以便我可以计算出正确的路由来设置? 还是有另一种技术可以用来避免这样做?

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

我开始用iisnode和expressjs做一些实验来创build一个像REST API一样的节点。 所以在server.js上我创build了类似的东西 app.put("/test", function(req, res){ … }); 但是,当我执行PUT请求时,我得到一个405 Method not allowed从IIS 7.5安装405 Method not allowed 。 任何想法如何解决这个问题? 顺便说一句,我google了,并试图添加PUT动词在这里和那里在不同的处理程序映射,没有成功…

在iis上运行反应同构

我正在尝试使用iis上的iisnode使用node.js来运行反应 我已经安装了最新的节点和最新的iisnode,并使用这个stackoverflow作为指导,但不能得到错误500. 如何运行Node.JS服务器的Web应用程序? 有关如何在iis上做这个的指南?

使用StaticFiles URL重写服务在IISNODE中提供静态文件

我想在IIS上部署一个Node.js应用程序。 我看到了GitHub存储库上的示例( https://github.com/tjanczuk/iisnode/tree/master/src/samples )。 我被困在服务静态文件。 和普通的Node应用程序一样,我将静态文件存储在一个名为public的文件夹中。 按照几个博客/论坛上的build议,我在web.config中添加了以下规则: <rule name="StaticContent"> <action type="Rewrite" url="public{REQUEST_URI}"/> </rule> 但它不起作用。 如果任何人有一个示例应用程序来certificate这个问题,这将是非常有帮助的。

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

我无法安装msnodesql。 本来我试过 npm install node-sqlserver …这警告说它已被msnodesql取代。 我成功安装了Node.js,iisnode,并且看到了正在服务的示例Hello.js(yayee,wonderful),所以至lessnode和iisnode正在工作。 我安装了prereq的: 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 […]

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

我有一个Web应用程序正在与通过IIS节点托pipe的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); } 在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(); }); 我的web.config文件如下所示: <configuration> <appSettings> <add key="virtualDirPath" […]

错误:EPERM,Node.js和Etherpad Lite不允许的操作

我试图让我的计算机上运行IIS的Etherpad精简版网站,然后将其上传到Azure Web站点,但是当我尝试( http://pastebin.com/4rZWbqix )时出现此错误: iisnode处理请求时遇到错误。 HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误 您正在接收此HTTP 200响应,因为system.webServer/iisnode/@devErrorsEnabledconfiguration设置为“true”。 除了node.exe进程的stdout和stderr的日志之外,还可以考虑使用debugging和ETW跟踪来进一步诊断问题。 node.exe进程生成的stdout和stderr输出的最后64k如下所示:fs.js:520 return binding.lstat(pathModule._makeLong(path)); ^ Error: EPERM, operation not permitted 'C:\Users\Matthew' at Object.fs.lstatSync (fs.js:520:18) at Object.realpathSync (fs.js:1047:21) at tryFile (module.js:142:15) at Function.Module._findPath (module.js:181:18) at Function.Module._resolveFilename (module.js:336:25) at Function.Module._load (module.js:280:25) at Module.runMain (module.js:492:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9) 在Etherpad的目录中没有fs.js文件,所以我认为它是Node.js的一部分有问题。 我是新的Node.js,所以任何帮助,将不胜感激。 编辑1:我目前正在寻找Azure的替代品,并授予C:\ Users \ Matthew的权限。 但是,有可能以某种方式修改fs.js,把一个try / catch围绕binding.lstat? 编辑2:玩了一下之后(添加权限工作!),我已经得到它的工作。 […]

Node.js本地模块不是有效的Win32应用程序错误

试图为node.js制作Hello World本地模块 在VS 2012中有一个文件的Win32项目: #include <node.h> #include <v8.h> using namespace v8; Handle<Value> Method(const Arguments& args) { HandleScope scope; return scope.Close(String::New("world")); } void init(Handle<Object> target) { target->Set(String::NewSymbol("hello"), FunctionTemplate::New(Method)->GetFunction()); } NODE_MODULE(hello, init) 这个编译成hello.node。 选项: – dynamic库(.dll) – 没有公共语言运行时支持 像这样使用它: hello = require './hello' console.log hello.hello() 它在本地机器上运行(win8 x64,节点:0.8.12) 但是,在远程服务器(Windows Server 2008 x64,节点:0.8.12,iisnode:0.1.21 x64,iis7),它会引发此错误: 应用程序已经抛出一个未捕获的exception,并终止:错误: %1不是有效的Win32应用程序。 C:\的Inetpub \testing\ LIB […]