2017-07-19 87 views
0

一切都建立正常啓用日誌記錄,但由於池的書面許可的任何地方創建無IISnode /或記錄/文件夾,:變化湛藍的游泳池權限

我得到這個錯誤訊息每次我試圖訪問時間我在瀏覽應用程序:

enter image description here

爲了看日誌,我有授權應用游泳池寫入日誌文件。

但我找不出在Azure門戶中編輯權限的位置。

我已經打開了日誌記錄:

enter image description here

這裏是我的IISNode.yml文件:

node_env: production 

loggingEnabled: true 
devErrorsEnabled: true 
logDirectory: iisnode 
debuggingEnabled: true 
maxLogFileSizeInKB: 1048 
maxLogFiles: 50 

在哪兒?

我沒有日誌很堅持,因爲我想不通,爲什麼不能我的應用程序啓動

編輯:

更多細節:

節點版本:7.10 .0

項目結構

gdpr/ 
    web.config 
    package.json  
    node_modules/ 
    app/ 
     sslCert.pem 
     server.js 
     app.js 
     config.js 
     routes.js 
     knexfile.js 
     migrations/ 
     api/ 
      controller.js 
      handlers/ 
       {...several *.js} 

起始點:server.js

config.js

var fs = require('fs'); 
var config = module.exports; 
var PRODUCTION = process.env.NODE_ENV === 'production'; 

config.express = { 
    port: process.env.EXPRESS_PORT || 51082, 
    ip: '127.0.0.1' 
}; 

config.knex = require('knex')({ 
    client: 'mysql', 
    connection: { 
     host: 'someHost.mysql.database.azure.com', 
     user: '[email protected]', 
     password: 'somePw', 
     database: 'gdpr', 
     insecureAuth: true 
    }, 
    debug: ['ComQueryPacket'], 
    pool: { 
     min: 0 
    } 
}); 


config.migrate = function(cb){ 
    config.knex.migrate.latest() 
     .then(function() { 
      cb(); 
     }); 
} 


config.bookshelf = require('bookshelf')(config.knex); 


if (PRODUCTION) { 
    //for example 
    config.express.ip = '0.0.0.0'; 
} 

server.js

var app = require('./app'); 
var config = require('./config'); 


function launchApp() { 
    app.listen(config.express.port, config.express.ip, function (err) { 
     if (err) { 
      console.log('Unable to listen for connections'); 
      console.log(err); 
      process.exit(10); 
     } 
     console.log('express is listening on http://' + config.express.ip + ':' + config.express.port); 
    }); 
} 

config.migrate(launchApp); 

的web.config:通過捻D:\home\site\wwwroot\iisnode或將瀏覽到它:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.webServer>   
     <webSocket enabled="false" /> 

     <handlers> 
      <add name="iisnode" path="app/server.js" verb="*" modules="iisnode" /> 
     </handlers> 

     <rewrite> 
      <rules> 
       <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true"> 
        <match url="^app/server.js\/debug[\/]?" /> 
       </rule> 
       <rule name="StaticContent"> 
        <action type="Rewrite" url="public{REQUEST_URI}" /> 
       </rule> 
       <rule name="DynamicContent"> 
        <conditions> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" /> 
        </conditions> 
        <action type="Rewrite" url="app/server.js" /> 
       </rule> 
      </rules> 
     </rewrite> 

     <security> 
      <requestFiltering> 
       <hiddenSegments> 
        <remove segment="bin" /> 
       </hiddenSegments> 
      </requestFiltering> 
     </security> 

     <httpErrors existingResponse="PassThrough" /> 

     <iisnode 
      watchedFiles="web.config;*.js" 
      node_env="%node_env%" 
      loggingEnabled="true" 
      logDirectory="iisnode" 
      debuggingEnabled="true" 
      maxLogFileSizeInKB="1048" 
      maxLogFiles="50" 
      devErrorsEnabled="true" /> 
    </system.webServer> 
</configuration> 

回答

0

當你啓用標準錯誤和標準輸出的記錄從你的Node.js應用程序,你可以檢查出日誌

https://<yoursitename>.scm.azurewebsites.net/api/vfs/site/wwwroot/iisnode/index.html 
+0

沒有,這是我的問題。這個池沒有寫日誌文件的權限,就像我在我的帖子中寫的那樣。所以即使參數打開,也沒有創建文件夾。通過輸入你的url,我得到{「Message」:''D:\\ home \\ site \\ wwwroot \\ iisnode \\ index.html'找不到。「} –

+0

你可以把'web.config'文件從[這篇文章](https://stackoverflow.com/questions/45193863/permissions-and-request-with-iisnode/45208082#45208082)並將其放入'/ wwwroot'文件夾? –

+0

不管怎樣,完成但仍然是同樣的問題。該端口已被設置爲默認env。 –