2017-07-20 10 views
0

私はNode.js Webアプリケーションを構築し、それをAzure Webアプリケーションとしてデプロイしました。 Webアプリケーションは基本的にAzureストレージアカウントからデータを取得し、それをクライアントに表示します。非常に簡単です。Azureはなぜ乱数500のエラーを出すのですか?

データがクライアントに返されるまでに時間がかかることがあります。だから私はこの問題の非同期性を扱う約束を使っています。

開発サーバーでは問題はありません。データは常にそれをクライアントに返します。 (Internet Explorer、Chrome、Firefoxでテスト済み)

しかし、Azure Webアプリケーションでは、データがクライアントに戻ってくることがあり、要求が失敗することがあります(常に5秒後)、クライアントはブラウザの開発者ツールで500(内部サーバー)エラーが発生しました。

クライアントが500エラーを受信して​​も、空白のログストリームに問題はなく、サーバーは問題が発生しなかったように動作し続けます。

このWebアプリケーションは、共有リソースを使用する無料のサービスプランを使用して構築されています。これが問題なのですか、誰かがAzureでこの問題の経験がありましたか?

+2

無料の層は、20分の休止後にアプリケーションプールをリサイクルします。これは見ている問題と一致していますか? –

+0

@DavidMakogonこれはユーザーがサイトに接続してから20分後でしょうか?もしそうなら、それは問題ではありません。リクエストは応答を返すのに60〜80秒かかります。 –

答えて

0

500エラーの場合は、トラブルシューティングのためにstdoutとstderrのログを有効にして、ログの内容を確認する必要があります。デバッグを有効にするには、web.configを変更するか、Node.jsアプリケーションのルートにあるiisnode.ymlファイルを作成または変更します。 web.config

が、それは次のようになります。

<iisnode loggingEnabled="true" logDirectory="iisnode" /> 

またはiisnode.ymlで、それは次のようになります。今

loggingEnabled: true 
logDirectory: iisnode 

、あなたが https://{yoursitename}.scm.azurewebsites.net/api/vfs/site/wwwroot/iisnode/index.htmlに行くことによってログを表示することができますブラウザ。

enter image description here

また、AzureのWeb AppでのNode.jsをデバッグする上での手順をチェックアウトすることができます: How to debug a Node.js web app in Azure App Service

+0

私のログには、POSTリクエストが出ているのを見ることができますが、それだけです、私は500エラーに関係するものは何も表示されません。その後の唯一のことは、セッションCookieが認証として使用されていることです。 –

関連する問題