2010-07-03 84 views
1

我将应用程序部署到了Google App Engine。当我导航到它,我得到这个:Google App Engine:“错误:服务器错误”但日志中没有任何内容

Error: Server Error

The server encountered an error and could not complete your request.

If the problem persists, please report your problem and mention this error message and the query that caused it.

所有的页面都这样做。 appcfg.py upload_data也不起作用。我不知道为什么。我在这里做错了什么?另外,感觉有时候我会花更多的时间和GAE搏斗,而不是真的写代码。 (尽管可能我的失望完全属于我自己的错)

+0

有趣的是,你有这种感觉,因为我的印象总是相反。我感觉AppEngine的结构和工具让我避免了很多与基础设施的摔跤。相比之下,当我将一个新的Rails应用程序部署到其托管环境时,我似乎花费了整天的时间和时间。 – 2010-07-03 21:00:40

+0

这是您第一次部署此应用程序吗? – 2010-07-03 21:14:38

+0

不,我之前部署了它,但因为我只是测试而立即禁用它。过去我部署了一些应用程序,这些应用程序让我不那么麻烦。 – 2010-07-03 21:45:02

回答

0

如果您构建应用程序对象(假设您使用的是App Engine附带的webapp微框架,因为您尚未提及关键细节; )以下列方式...:

application = webapp.WSGIApplication(url_to_handlers, debug=True) 

debug=True意味着你应该看到在浏览器中的一个例外回溯,使调试容易得多。 (url_to_handlers(url, handler)对的列表,当然我假设你已经正确导入webapp等等)。

几乎每个框架都具有至少等价的调试工具(或者更好,例如显示一个页面,通过适当的点击可以扩展嵌套框架并检查每个框架的局部变量),所以这不应该很难做到你可能正在使用的其他框架(在你感觉你的应用程序非常稳定之前,这是可取的 - 在此之后,一旦你将它打开到一个小的alpha测试层的朋友之外,你可能不想让用户满意追溯......尽管我看到许多网页都是这样做的,但在各种不同的语言和框架中,它仍然不是最好的用户体验;-)。

大多数只在部署到生产环境时出现的异常,在严格模式下没有在本地SDK中复制意味着SDK中的一个弱点,顺便说一句,这是一个好主意(一旦你确切知道发生了什么) SDK跟踪器中的错误。 (有些事情可能合理地认为这个通用规则的例外包括超时问题,因为在任何给定的时间,部署服务器的确切性能和工作负载当然基本上不可能在您的本地SDK上以任何准确度进行重现,所以SDK基本上不会别试试;-)。

+0

是的,它在devserver上工作正常,并且已经设置了'debug = True',即使在部署时也是如此。但我没有看到回溯。他们是否因生产而被禁用?我如何进一步诊断? – 2010-07-03 21:47:34

+0

@Rosarch,'debug = True'是在应用程序级别执行的,所以它可以在已部署的应用程序以及SDK中运行。无论如何,为了调试,在你的代码服务请求的路径中添加明确的'logging'调用,以便你可以通过一分为二来缩小问题的位置 - 例如,从半个开始(一个在非常开始,最后一个,其他几个在战略位置),看到最后一个发生,第一个不发生,在逻辑上加上另外4个左右等等(给出一些有用的信息每一个,例如几个变量的值,如果容易的话)。 – 2010-07-03 21:58:18

相关问题