Tag: iis

将iisnode指向嵌套在iis网站文件夹中的server.js文件

我无法让iisnode运行我的节点应用程序。 我的目录结构是 iis-site -client -server -server.js 我怎样才能让iisnode指向一个嵌套的.js文件? 我试过这个,但它服务器server.js而不是执行它。 <handlers> <add name="iisnode" path="server\server.js" verb="*" modules="iisnode" /> </handlers> 和 <rule name="default"> <match url="/*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="server/server.js" /> </rule>

HTTPS和iisnode

我通过使用iisnode与IIS结合使用节点。 在我看来,我以前在Node中configuration服务器的工作现在可以直接在IIS中完成。 像: httpsconfiguration(和证书) http到httpsredirect 这是否意味着我可以摆脱这样做的节点代码,只是为了IIS方法? var fs = require('fs'); var https = require('https'); var options = { key: fs.readFileSync('./ssl/xxxxxxx.private.pem'), cert: fs.readFileSync('./ssl/xxxxxxx.public.pem'), }; https.createServer(options, app).listen(443);

当Node应用程序返回一个4xx时,IIS返回500

我也曾经在iisnode github项目上问过这个问题 我通过Windows Azure网站使用IISNode。 如果我的Node应用程序返回一个2xx状态码(200,201等),那么一切都很好,并按预期工作。 如果我的Node应用程序返回一个4xx状态码,例如: response.send(404, "not found") (我正在使用Restify),那么我得到一个500发送到客户端,身体只是“页面无法显示因为发生了内部服务器错误。“ 如果我做azure site log tail <sitename> ,那么当500被发送到客户端时,日志包含404的HTML。 … <body> <div id="content"> <div class="content-container"> <h3>HTTP Error 404.0 – Not Found</h3> <h4>The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.</h4> </div> … 我真的只是希望IISNode / IIS采取我的404并将其发送到客户端。 401s,409s等也是如此,它们全部导致500发送。 我已经尝试过<customErrors mode="off" />和<httpErrors existingResponse="passThrough" […]

如何在iisnode中托pipe服务和静态内容

我有我的网站快速工作。 但是现在我需要在IIS上托pipe它。 如何让我的路由与IISNode一起工作? 我能够将我的静态内容移动到/公共文件夹(html,前端js等)。 我不想这样做,但得到了这部分工作。 我将我的服务器端逻辑移至/ server。 我以前有.Net Web API风格路由工作,我的服务在/ api托pipe。 我将这些移动到/ server / api。 每当我尝试请求我的API,我得到一个404。我怎样才能得到这个IISNode的工作? app.use("/api", require("./api")); // routes/api/index.js var router = require('express').Router(); router.use('/questionsets', require('./questionsets')); module.exports = router; var router = require('express').Router(); router.use('/questionsets', require('./questionsets.js')); module.exports = router; // routes/api/questions.js var router = require('express').Router(); router.get('/', function (req, res) { … }); router.get('/:id', function (req, res) […]

将TLS / SSL安全POST请求从node.js发送到IIS

我在Windows Server 2012上运行IIS 8.5(使用iisnode发布)上的node.js webapp,并将其configuration为使用我刚刚购买的此证书。 所以我把证书添加到服务器上: 并configuration我的网站使用https和我刚刚configuration的证书: 现在我可以访问我的网站,如https://example.com 好的,我有一些node.js客户端运行在我的networking之外的某些计算机上,并不时地向服务器发送一些数据。 我想保证这个连接,现在我有一个SSL证书。 我的目标是从客户端执行HTTPS POST,只有使用有效证书的客户端才能将数据上传到我的https://example.com/uploadurl。 所以首先,我强迫ISS在我的网站上申请证书。 在SSLconfiguration中,我选中了“Required”选项: 接下来要做的就是使用https和我的证书从我的node.js上传数据。 问题是我的node.js https POST请求获取IIS的权限拒绝网站作为回应。 我的node.js请求代码是: var config = require('./config'); var request = require('request'); var path = require('path'); var fs = require('fs'); var certFile = path.resolve(__dirname, 'tls/certificate.crt'); var keyFile = path.resolve(__dirname, 'tls/certificate.key'); var caFile = path.resolve(__dirname, 'tls/certificate.ca.crt'); var pfxFile = path.resolve(__dirname, 'tls/certificate.pfx'); […]

如何访问node.js中的共享networking驱动器

在IIS中,我有一个Web服务,它运行在具有访问远程计算机上驱动器的用户身份的应用程序池下。 这样,当Web服务运行并尝试访问远程机器来读取文件时,我们不会得到任何无效的授权错误。 我现在写了我的第一个Node.js应用程序,但我不知道如何允许从应用程序访问到远程机器的文件stream。 我有我想要读取的远程计算机文件的uncpath名称,但我不知道是否必须传递用户的凭据来访问该文件,或者我必须在某些凭据下运行Node.js应用程序。 任何线索? 我知道有IIS的节点,但是有没有IIS做到这一点的另一种方式。 更新: 只需在我的用户帐户下运行我的应用程序,并将此帐户configuration为允许访问远程计算机,并且可以访问远程计算机而不更改我的代码(换句话说就是直接使用Uncpath)。 但是,如何使用其他用户的凭据来执行此操作(例如,在Node.js中模拟?)

如何在IIS中托pipe节点应用程序?

我在平均堆栈中开发应用程序。 唯一的区别是我想在IIS中托pipe我的应用程序,而不是express.js。 这样做是可能的还是可行的? 同样的可能的优点和缺点是什么? 提前致谢。

基于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,以便我可以计算出正确的路由来设置? 还是有另一种技术可以用来避免这样做?

Uncaught TypeError:无法调用null的onClose方法

Iam在node.js聊天应用程序上工作,我已经在Windows上承载IIS上的node.js。 我的意图是包括Node.js在Asp.net mvc由Jon Galloway解释在asp.net web应用程序中执行聊天(文本,audio,video)。 我的安装细节: iisnode.js – iisnode-full-iis7-v0.2.3-x86 node.js – node-v0.8.19-x86 express.js版本 – 3.1.0 socket.io版本 – 0.9.13 在Windows 7 32位系统与IIS 8.0expression 我已经在IIS上成功托pipe了node.js,并运行示例 但是当我开始搪塞socket.io我卡住了.. 当我开始连接客户端浏览器到服务器,我在客户端浏览器说错误 Uncaught TypeError:无法调用null的socket.io.js:1771方法'onClose' 在我的服务器应用程序iam使用socket.ioconfiguration io.configure(function () { io.set('transports', [ 'xhr-polling' , 'jsonp-polling' ]); io.set("polling duration", 10); if (process.env.IISNODE_VERSION) { io.set('resource', 'node/socket.io'); } }); 这个问题是相关的版本iam使用(express,和socket.io node.js)或在我的coading,任何想法的问题请帮助我。 谢谢。