【发布时间】:2014-06-09 15:12:47
【问题描述】:
我正在用 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="*" modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
公共/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>
</head>
<body>
<h1 id="hello" style="text-align:center;"></h1>
</body>
</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 的应用程序,而不是使用来自类似位置(即来自 C:\tsapp-deploy\tsappsvr\appname\x.y.z\index.js)的 express,所以我认为它应该正确配置,但是当我尝试从浏览器运行这个应用程序时,输入 http://localhost/tsappsvr/TestExpress/0.0.0/app.js 我在 Chrome 和 Firefox 中得到 404 Not Found(在 IE 中)或“Cannot GET /tsappsvr/TestExpress/0.0.0/app.js”。
我想问题可能出在我的 web.config 中,但我不知道如何更改它以使我的应用程序正常工作。按照类似问题的其他答案中的建议,我已经尝试了对 web.config 的一些更改,但还没有成功。 有什么建议吗?
提前致谢。
【问题讨论】:
标签: node.js iis express iisnode