2017-01-15 21 views
0

Azure Webサイトに移動しようとすると、403エラーコードで次のエラーが発生します。Azure WebサービスへのノードJSアプリケーションのデプロイ

このディレクトリまたはページを表示する権限がありません。

私は以下のリストにある適切なシードアプリファイルを作成しましたが、なぜこのエラーが発生しているのか混同しています。アプリケーションログで何か不審なことはありません。

ログ:

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 [email protected] 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> 

答えて

2

あなたのweb.configファイルがserver.jsパスのiisnodeモジュールを使用するようにIISを伝えますが、しかし、Webサイトのルートを含む他のすべてのパスは、この影響を受けません。

あなたのノード・アプリケーションは、あなたの紺碧のウェブサイトのルートで利用できるようにしたい場合は、明示的にこのことについて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> 
関連する問題