2016-03-23 17 views
0

私は次の設定をしています。Python TornadoWebアプリケーションがAzure Webサイトにデプロイされています。アプリケーションは実際にJSONを返すREST APIです。しかし、レスポンスコードが200の場合、すべて正常に動作しますが、レスポンスコードが50xや40xのようなものであれば、レスポンスにはボディは含まれません(ただし、エラーの詳細を含むJSON本体が必要です)。同じコードをローカルで直接TornadoまたはNGiNXを使ってテストします。どうやら、IISはボディをフィルタリングしますが、これを避けるためにどの設定を変更するのかは本当にわかりません。何か案は?Azure WebSitesがエラーの応答本体を返さない

答えて

0

おそらくweb.configを作成し、customErrors要素を適切に設定する必要があります。 Theseがオプションです。 web.configはur展開されたフォルダ構造のルートに存在する必要があります。一般的に言えば、スタックトレースを持つすべての単一の内部エラーの詳細は、おそらくすべてを理解することができず、潜在的な攻撃者に多くの情報を与えるためです。そのため、私はHTTPレスポンスとして短いエラーメッセージを好んでおり、残りは後の分析のためにどこかにログに記録されます。

+0

唯一の問題は、Azure Webサイトが、Visual Studioからの展開中にweb.configを使用して行うすべてのものを上書きすることです。私が試したweb.configの設定は ''でしたが、完全に消去されました。 – toddysm

+0

それが本当であるか分からない。 Webアプリケーションとweb.configが有効になります。たぶん問題が実際にweb.config設定で解決できるかどうかを確認するには、ftpデプロイメントを試してみてください。 – Helikaon

+0

おかげさまでHelikaon - これは別のエラーが発生した私の次のステップでした - 私はGitデプロイメントを設定できませんアプリ。私の次のオプションはもちろんFTPでしたが、FTPトラフィックはファイアウォールでブロックされています:) – toddysm

0

Python Tornado webappをRunning Tornado apps on WSGI serversと設定してコード化するためのドキュメント「PythonとAzure App Service Web Appsの設定」のセクションWSGI HandlerWeb.configを参照してください。

Python用のAzure WebAppを作成した場合、以下の手順を実行できます。

  1. セクションWeb.configから設定内容をコピーし、クーズーパスwwwrootweb.configファイルを作成します。
  2. Kuduパスwwwrootapp.pyファイルを作成し、セクションWSGI Handlerとしてコードします。
  3. webappを起動してアクセスしてみます。
  4. 竜巻を使用してwebappを再現します。
+0

はい、これはあなたが提供したリンクごとに行われますが、エラーはまだフィルタリングされます。 – toddysm

関連する問題