Google App Engine在此服务器上找不到请求的URL /并不总是如此

时间:2018-04-21 20:53:20

标签: google-app-engine google-cloud-platform webapp2 google-app-engine-python

我使用Webapp2创建了一个Google App Engine项目,三天前一切运行良好,但今天(现在)感到惊讶的是它有时会说错误

在此服务器上找不到请求的网址

然后如果我在浏览器中重新加载网址多次,如10次。我可以看到我的网站。

重定向用户登录其Google帐户,然后检查用户是否已注册并提供个性化内容或信息。尝试在浏览器中重新加载它导致

在此服务器上找不到请求的网址

发生了什么事?是否由制作Google Cloud Project时选择的位置引起,选择中没有非洲,所以我选择了附近的区域!

misbehaving url is this虽然如果加载它可能会检查您的电子邮件是否先注册...

这是app.yaml档案:

application: cngiramicroloanscentre
version: alpha
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /
  script: cngira.app
  login: required
- url: /loanee/.*
  script: loanee.app
  login: required
- url: /officers
  script: officers.app
  login: required
- url: /loanees
  script: loanees.app
  login: required
- url: /loanees/.*
  script: loanees.app
  login: required
libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: "2.6"
- name: markupsafe
  version: "0.15"

cngira.py中路由的代码部分是:

....
app= webapp2.WSGIApplication([('/',MainPage)],debug=True)

类MainPage是:

class MainPage(webapp2.RequestHandler):
"""docstring for MainPage"""
def get(self):
    user=users.get_current_user()
    user_email=user.email()
    fetched_user=(ndb.Key("Officer",user_email)).get()
    if(fetched_user==None and user_email != "johnnnoni@gmail.com" and user_email != "barakarichard1992@gmail.com"):
        self.response.out.write("Sorry you are not authorised to access this place yet consult the authorised to add you to add you!! "+user_email)
    else:
        template_in=template_env.get_template("templates/index.html")
        if(user_email=="johnnnoni@gmail.com" or user_email == "barakarichard1992@gmail.com"):
            dictionary_to_pass={"navigations":navigations}
            self.response.out.write(template_in.render(dictionary_to_pass))
        else:
            self.response.out.write(template_in.render( { "navigations":navigation_for_officer } ))

1 个答案:

答案 0 :(得分:2)

在这种情况下显示的404页面不是来自应用程序的404错误的典型页面,而是“破碎的机器人”,

  
      
  1. 这是一个错误。
  2.         

    在此服务器上找不到请求的URL。这就是我们所知道的。

由Google基础架构提供的一个:

enter image description here

这通常表明GAE基础架构无法从请求中确定正确的应用程序实例(如果需要)并将请求传递给进行处理。请求甚至没有到达应用程序代码。

通常表示某种应用程序配置问题,或者在极少数情况下,表示GAE / Google托管基础架构中断。

正如OP的评论所示,删除项目并创建一个新项目,而不是修复此实例中的问题。一种相当激进的方法 - 项目标识符不能重复使用,在某些情况下删除旧项目可能不被认为是可接受的。

但是在一个新的(临时)项目中克隆应用程序配置+代码只是为了仔细检查 - 如果新项目按预期工作,可能需要谷歌的支持来修复旧项目。