在过去的 3 个小时里,我在谷歌上搜索,并没有发现关于 windows azure 问题的处理方法:
您无权查看此目录或页面。
我做了一个 git master push to azure 并且部署成功了。我还打开了失败的请求跟踪,但除了上面的语句什么都没有显示。
有关如何解决此问题的任何想法?
我刚刚测试过,如果您不将主 node.js 文件部署为 server.js,您将收到此错误,因为 web.config 专门寻找 server.js,如下所示:
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
</handlers>
要进一步解决此问题,您可以按照此处所述通过 FTP 访问网站。
AvkashChauhan 的回答确实使我朝着正确的方向前进,但我还必须添加适当的重写规则。这是我完整的 web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation batch="false" />
</system.web>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="myapp">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我也遇到了这个错误。我正在使用 MVC,错误的原因是在我的布局页面上,我调用了匿名用户无法访问的操作:
@Html.Action("GetMenu", "Users")
有关信息,我AuthorizeAttribute()
在 Application_Start 中注册了一个全局过滤器,并且我的Login
操作用以下内容装饰AllowAnonymous
:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
我的网站以前在 IIS7 上运行过,但 Azure 不那么宽容。我通过添加这样的检查解决了这个问题:
@if (User.Identity.IsAuthenticated)
{
@Html.Action("GetMenu", "Users")
}
自这个问题以来,天蓝色工具发生了很大变化。
我建议人们使用azure-cli。但有趣的是,在我使用它一次创建站点后,我实际上并没有使用它。
我现在使用的只是将 (git) 直接推送到名为 azure 的遥控器的能力,而 cli 正在为您设置它。
但是,如果您不想安装 cli,您基本上可以手动添加远程仓库(您的站点),如下所示:
git remote add azure https://<site-or-appservice-name>.scm.azurewebsites.net/<site-or-appservice-name>.git
就像使用其他所有 git 遥控器一样。
不特定于 node.js,但会更新以帮助其他人在常规 Web 应用程序中遇到此问题。如果 index.html 文件不存在或因为它位于子目录中而未找到,也会发生这种情况
我刚刚遇到了这个问题,就我而言,是导致问题的 ipSecurity 配置。只需 hd 将 allowUnlisted 更改为 true。
<security>
<ipSecurity allowUnlisted="false">
</security>
您需要将server.js
文件移动到根应用程序文件夹。
git push
在来自本地存储库之后,我收到了相同的错误消息。
通过打开 Azure 仪表板解决了这个问题:
Web 应用/应用部署/部署源
并选择本地 git 存储库作为部署源
简单配置,在 azure 门户中转到您的 web 应用程序 -> 所有设置 -> 应用程序设置,在默认文档下添加您要查看的文档的特定名称,等待它更新,然后刷新您的 azure 链接。