当尝试访问Heroku控制台时,出现“您无权访问该应用程序”的提示。

29

我最近开始在Heroku上使用Ruby on Rails协作项目。我被添加为协作者并将远程环境添加到了我的开发环境中。经过一些开发后,我推送了一些更改,并没有遇到任何问题:

$ git push staging

staging是我远程的名称。之后,在尝试在Heroku上运行"rake test"时,我收到了一个错误:

$heroku run rake test --app staging
Running `rake test` attached to terminal... failed
 !    You do not have access to the app staging.

这很奇怪,因为我完全能够推动我的更改。我检查了Heroku面板,并看到我的推送已记录在那里。然后我尝试使用控制台查看日志,但出现了同样的问题。

$ heroku logs --app staging
 !    You do not have access to the app staging.

最后,我尝试访问控制台,但也失败了。

$ heroku run rails console --app staging
Running `rails console` attached to terminal... failed
 !    You do not have access to the app staging.

在这一点上,我更新了我的Heroku工具包安装,并使用"heroku auth"验证我的电子邮件是否显示出来,但错误仍然存在。我目前正在联系Heroku支持,但我希望有类似问题的人可以与我并行地提供帮助。

谢谢!

8个回答

79

如果有人遇到类似的问题,这是因为我混淆了Heroku应用程序的名称和git remote的名称。当我调用 --app staging(我的remote名称)时,应该使用在Heroku中找到的实际应用程序名称。


3
谢谢,这很有帮助。但是有些困惑,因为如果您在未指定应用程序名称的情况下运行$ heroku run bash,则会收到警告,指出存在多个应用程序,然后列出git远程的名称。所以我一直试图使用远程名称选择一个应用程序。 - Jared_C

20

在首次使用Heroku工具包命令之前,请确保先运行heroku login。它不会提示您尚未登录。


有没有办法帮助我解决这种情况:在运行 heroku login 命令之前,不小心运行了 heroku create 命令?我不知道如何撤销这个操作。 - Smokin Joe

9

如果你还没有添加heroku git远程仓库,也会出现这种情况。

你可以使用以下命令来添加它:

git remote add heroku https://git.heroku.com/<your project>.git

您可以输入以下内容:
heroku git:remote -a AppName

我的情况与这个问题的条件有些不同,但是你的答案对我很有帮助。谢谢。 - Amin SZ
1
我尝试了这个,但是还是出现了相同的错误。你有其他的建议吗? - wanderer0810

1

我曾经遇到过同样的问题,因为我在Heroku上创建了多个远程(例如,一个用于测试的名为“staging”的远程和一个用于生产的默认远程“heroku”)。

解决方案

使用以下两个选项让Heroku知道你要引用哪个应用程序和远程:

  1. -a 你的应用程序名称,以及
  2. --remote 远程名称

示例

例如,对于名为staging的远程:

heroku run env -a your_app_name --remote staging

或者对于生产远程使用这样的代码:

heroku run env -a your_app_name --remote heroku

额外信息

上述代码运行简单的命令env,但你可以替换成任何你想在heroku上运行的命令。

替换远程名称。默认情况下,heroku创建一个名为heroku的远程,通常是生产环境远程。您可以使用命令git remote获取您的远程。


0

这是由于您的ssh密钥不再被允许访问所引起的。请确保您的ssh密钥相同。您也可以重新生成您的ssh密钥并将其添加到Heroku。


0

我曾经遇到过同样的问题。原因是我没有在Heroku上登录。 首先,我输入:

heroku login 然后我输入: heroku git:remote -a restserver-node-jngs 就可以了。

希望对某些人有所帮助。


0

你也可以运行:

heroku run rake test --remote staging

不确定底层发生了什么,但是本地CLI工具会根据您的git远程来确定您指的是哪个应用程序。


0

我在我的情况下遇到了同样的问题,因为我没有从主分支推送,所以我不得不使用以下命令:

git push heroku :main

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接