Azure中的“您无权查看此目录或页面”错误

时间:2018-07-21 02:37:11

标签: azure azure-web-sites

我以前从未使用过Azure,因此我遵循了以下教程:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs#create-a-project-zip-file

尝试在Node.js中制作的Azure上部署简单应用程序时出现权限错误。我已经尝试过多次重新上传,但是每次都会收到相同的错误。我正在使用Azure的免费试用版。

这是package.json和web.config

PACKAGE.JSON:

{
  "name": "oslo-solutions",
  "version": "1.0.0",
  "description": "",
  "main": "scripts.js",
  "scripts": {
    "test": "karma start karma.conf.js",
    "build": "webpack --mode development",
    "start": "webpack-dev-server --open",
    "lint": "eslint src/*.js",
    "jinit": "./node_modules/.bin/jasmine init",
    "npminit": ""
  },
  "repository": {
    "type": "git"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.18.2",
    "bootstrap": "^4.0.0",
    "express": "^4.16.3",
    "jquery": "^3.3.1",
    "lodash": "^4.17.5",
    "popper.js": "^1.14.1"
  },
  "homepage": "/",
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.3",
    "babel-preset-es2015": "^6.24.1",
    "clean-webpack-plugin": "^0.1.19",
    "css-loader": "^0.28.10",
    "dotenv-webpack": "^1.5.5",
    "eslint": "^4.18.2",
    "eslint-loader": "^2.0.0",
    "html-webpack-plugin": "^3.0.6",
    "jasmine": "^3.1.0",
    "jasmine-core": "^2.99.0",
    "karma": "^2.0.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-jquery": "^0.2.2",
    "karma-webpack": "^2.0.13",
    "style-loader": "^0.20.3",
    "uglifyjs-webpack-plugin": "^1.2.2",
    "webpack": "^4.0.1",
    "webpack-cli": "^2.0.11",
    "webpack-dev-server": "^3.1.1"
  }
}

WEB.CONFIG:

<configuration>
  <system.webServer>

    <!-- indicates that the index.js file is a node.js application 
    to be handled by the iisnode module -->

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

    <!-- adds index.js to the default document list to allow 
    URLs that only specify the application root location, 
    e.g. http://mysite.antarescloud.com/ -->

    <defaultDocument enabled="true">
      <files>
        <add value="scripts.js" />
      </files>
    </defaultDocument>

  </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:1)

我遵循了此示例node.js应用程序:nodejs-docs-hello-world并将其部署到azure。它工作正常,请参考web.config文件:

<?xml version="1.0"?>
<configuration>
  <system.web> 
    <compilation batch="false" />
  </system.web>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="scripts.js" verb="*" modules="iisnode" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="myapp">
          <match url="/*" />
          <action type="Rewrite" url="scripts.js" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

我建议您导航到KUDU网址:https://<your app name>.scm.azurewebsites.net/DebugConsole,然后转到site\wwwroot,检查文件是否包含在目录中。

或者暂时放弃zip部署,只需将本地文件直接拖到d:home\site\wwwroot目录中,然后重试。

enter image description here

有关更多解决方案,请参考以下主题:

1。Getting error after pushing to Windows Azure: You do not have permission to view this directory or page

2。https://github.com/Azure-Samples/nodejs-docs-hello-world/issues/9

希望对您有帮助,有任何问题请告诉我。