我正在用 node.js + express 和 iisnode 做一些实验。我有以下非常简单的应用程序,位于C:\tsapp-deploy\tsappsvr\TestExpress\0.0.0
:
应用程序.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);
});
包.json:
{
"name": "TestExpress",
"version": "0.0.0",
"private": true,
"dependencies": {
"express": "3.x"
}
}
网络配置:
<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 的应用程序,而不是使用来自类似位置(即 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 的一些更改,但还没有成功。有什么建议么?
提前致谢。