Azure:"您无权查看此目录或页面

时间:2015-11-20 20:02:29

标签: node.js visual-studio azure azure-web-sites

我使用Azure SDK 2.7和Node.js工具在Visual Studio 2015中创建了一个node.js应用程序。

我已经在我的网络应用程序中使用BitBucket成功设置了CI,我可以看到对存储库的更改确实会触发构建和部署。

但是,我到达的页面(http://ftct.azurewebsites.net/)抱怨:您无权查看此目录或页面。

我已经使用:app.get(' /',routes.index)在我的node.js中指定了一个默认文件(kinda);

因此,尝试直接导航到此文件http://ftct.azurewebsites.net/signin.html会产生不同的错误:您要查找的资源已被删除,名称已更改或暂时不可用。

我将应用程序配置为在Visual Studio中的端口1337上运行,但使用此端口并不能解决问题。尝试导航到移植的地址会产生超时。

有什么想法吗?

8 个答案:

答案 0 :(得分:7)

我有同样的问题,

你需要在根目录下的web.config,package.json,server.js

的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>
在package.json中你需要:

 ...
  "scripts": {
    "start": "node server"
  },
...

并在您的server.js中确保将服务器端口号设置为

process.env.PORT || 1337;

答案 1 :(得分:3)

编辑:尝试从https://portal.azure.com的库中创建“Node JS Empty Web App”,并将web.config和网站与您拥有的内容进行比较。您可能缺少一些配置设置。

enter image description here

上一个答案:首先,Azure Web Apps(Azure网站的新名称)中只有端口80和443可用。因此端口1337将无法工作。重新配置您的应用程序以在端口80或443上运行。关于权限问题,您是否启用了应用程序服务身份验证?通过编辑Web App的应用程序设置,确保已禁用此功能。

enter image description here

答案 2 :(得分:2)

您可以尝试创建一个&#34; Node JS Empty Web App&#34;来自旧门户网站http://manage.windowsazure.com的图库,见下文。

enter image description here

enter image description here

然后,在网络应用程序仪表板页面的set up deployment from source control处执行quick glance以部署您的网络应用程序。

enter image description here

enter image description here

现在,浏览工作正常的网络应用http://<app-name>.azurewebsites.net

答案 3 :(得分:1)

如果使用iisnode运行iis或iis express后面的节点进程,您可能错过了web.config文件。

https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config

答案 4 :(得分:1)

就我而言,使用ZipDeploy时出现此错误:请确保将文件压缩在根文件夹中,以便Node.js文件可以在基础级别的Kudu上列出,而不是在一个文件夹中列出。感谢mike-urnun-msft

答案 5 :(得分:0)

此外,当您通过azurewebsites.net/ZipDeployUI部署zip文件时,请确保您看到的文件在/ wwwroot级别上已解压缩。

如果文件显示在/ wwwroot / your-app-folder /下,则可能会出现此权限问题。我花了很长时间才弄清楚!希望对您有所帮助。

here

答案 6 :(得分:0)

我的情况相似,但略有不同。我正在研究Facebook Messenger平台的“设置您的Webhook”文档步骤。

localhost可以正常工作,但是在部署后,它只会简单地说出其他人已经指出的内容。

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

我最终的package.json看起来像它,并且有效。

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },

我认为,问题归结为Facebook提供演示代码的方式。该演示代码根本没有专门部署在azure上的所有内容。

我已经将我的最终代码放在这里了(我认为它可以作为入门人员使用的入门工具)。

另外,有趣的是,其他人建议使用web.config,但我并不需要它。

https://github.com/Jay-study-nildana/FBMessengerWebHook

答案 7 :(得分:0)

问题很可能是推错了文件夹。对于 ASP.NET 服务器,根文件夹必须有 index.html 文件。

角度特定

  1. 在您的开发环境中部署 issue ng build --prod 之前。
  2. 这会在解决方案中创建一个“dist”文件夹。
  3. 接下来打开 Visual Studio Code 到“dist”文件夹中的第一个文件夹。

在这种情况下,文件夹名称是“resume”,恰好是 Angular 项目名称。请注意,index.html 文件在此文件夹中。

first folder in the dist folder, is same name as project

请注意,向上推时您知道自己走在正确的轨道上,因为此文件夹很小,而且完成得很快。

我使用 VSCode 的 Azure 工具插件,它只是提示我正确订阅(您的 Microsoft 帐户),然后单击向上箭头进行上传!