当我尝试导航到我的Azure网站时,我收到以下错误,其中包含403错误代码。
您无权查看此目录或页面。
我已经创建了下面列出的正确种子应用程序文件(我相信),并且很困惑为什么我仍然遇到此错误。我在应用程序日志中看不到任何可疑的内容。
日志:
Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling node.js deployment.
KuduSync.NET from: 'D:\home\site\repository' to: 'D:\home\site\wwwroot'
Copying file: 'server.js'
The package.json file does not specify node.js engine version constraints.
The node.js application will run with the default node.js version 6.9.1.
Selected npm version 3.10.8
npm WARN test@1.0.0 No description
Finished successfully.
文件:
server.js:
var express = require('express');
var app = express();
var PORT = process.env.PORT || 1337;
app.get('/', function (req, res) {
res.send('Hello World!!')
});
app.listen(PORT, function () {
console.log('App listening on port ' + PORT);
});
的package.json:
{
...,
"scripts": {
"start": "node server",
"test": "echo \"Error: no test specified\" && exit 1"
},
...
}
的web.config:
<configuration>
<system.webServer>
<handlers>
<!-- indicates that the app.js file is a node.js application to be handled by the iisnode module -->
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
答案 0 :(得分:2)
您的web.config告诉IIS使用iisnode
模块用于server.js
路径,但包括网站root在内的所有其他路径都不会受此影响。
如果您希望您的节点应用程序在您的azure网站根目录上可用,则需要明确告知IIS:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="DynamicContent">
<match url="/*" />
<action type="Rewrite" url="server.js"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>