2010-07-03 3 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 애플리케이션을 배포 할 때 나는 하루 종일 sshing과 sudoing을 보내는 것처럼 보였다. –

+0

이 응용 프로그램을 처음 배포 했습니까? –

+0

아니요, 전에 배포했지만 즉시 테스트했기 때문에 즉시 비활성화했습니다. 과거에는 문제가 적은 앱을 배포했습니다. –

답변

0

App Engine을 빌드하면 (App Engine과 함께 제공되는 webapp 마이크로 프레임 워크를 사용한다고 가정 할 때, 그 중요한 세부 사항을 언급하지 않았으므로 -)는 다음과 같은 방법으로 ... :

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

debug=True 당신이 훨씬 더 쉽게 디버깅을, 당신의 예외에 대한 브라우저에서 역 추적을보고해야 의미합니다. (url_to_handlers(url, handler) 쌍의 목록입니다. 물론 webapp 등을 적절하게 가져온 것으로 가정하고 있습니다.)

거의 모든 프레임 워크에는 적어도 동급 이상의 디버깅 기능이 있습니다 (적절한 클릭으로 중첩 프레임을 확장하고 각 프레임의 로컬 변수를 검사 할 수있는 페이지를 표시하는 등). 다른 프레임 워크를 사용하고있을 수도 있습니다. (그리고 앱이 정말 견고 할 때까지는 좋습니다. 그 후에는 작은 알파 테스트 레이어를 넘어서 완전히 열면 사용자를 귀찮게하지 않으려 고합니다. 흔적 ... 나는 많은 웹 페이지에서 다른 언어 및 프레임 워크로 모든 종류의 작업을 수행했지만 여전히 최상의 사용자 경험이 아니라는 것을 알았습니다.

프로덕션으로 배포 할 때만 발생하지만 엄격한 모드로 로컬 SDK에서 재생성되지 않는 대부분의 예외는 SDK의 약점을 의미하며 btw는 게시자에게 게시됩니다. SDK의 추적 프로그램에 버그가 있습니다. (이 일반적인 규칙의 예외로 간주 될 수있는 일부 사항에는 제한 시간 문제가 포함됩니다. 특정 시점의 배포 서버의 정확한 성능과 작업량은 로컬 SDK의 정확성을 바탕으로 재현하는 것이 본질적으로 불가능하기 때문에 SDK는 기본적으로 시도하지 마라 ;-).

+0

예, 그것은 devserver에서 정상적으로 작동합니다. 배포 된 경우에도'debug = True'를 설정했습니다. 그러나 나는 추적을 보지 않고있다. 생산을 위해 장애인입니까? 어떻게 진단 할 수 있습니까? –

+0

@Rosarch,'debug = True'는 응용 프로그램 수준에서 수행되므로 배포 된 응용 프로그램뿐만 아니라 SDK에서도 작동합니다. 어쨌든 디버깅하려면 요청을 처리 할 때 코드가 따라야하는 경로를 따라 명시적인'logging' 호출을 추가하십시오. 따라서 문제를 2 등분하여 범위를 좁힐 수 있습니다 - 예를 들어, 시작, 마지막에 하나, 전략적으로 배치 된 지점에있는 몇 가지 다른 것들), 발생하는 마지막 것을보고, 처음에는 그렇지 않은 것을보고, 논리적으로 4를 추가하십시오. 쉬운 경우, 몇 개의 vars 값). –