Azure Python WebApp 'Service Unavailable' 与 Pyodbc
Azure Python WebApp 'Service Unavailable' With Pyodbc
我在 Azure 中有一个 Web 应用程序,它在 Python 中运行。
我 运行 Python 在 Azure 上使用 Flask,一切正常,但后来我导入了 pyodbc 来连接我的 sql 服务器,也在 Azure 上,在导入之后我有'service unavailable' 当我访问我的 url.
只有当我导入 pyodbc 时才会出现此问题。
我该如何解决这个问题?
谢谢!
根据我的经验,'service unavailable' 是因为程序内部问题。您可以查看 KUDU url https://***.scm.azurewebsites.net/DebugConsole
.
上的日志
请参考我的工作步骤安装pyodbc
模块。
view.py
from datetime import datetime
from flask import render_template
from jaygongflask import app
import pyodbc
@app.route('/database')
def database():
"""Renders the about page."""
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=***.database.windows.net;DATABASE=***;UID=***;PWD=***')
cursor = cnxn.cursor()
cursor.execute("select * from dbo.Student")
row = cursor.fetchall()
#for r in row:
# print r
return render_template(
'database.html',
title='Database',
year=datetime.now().year,
message='Database query result.',
queryResult = row
)
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="jaygongflask.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
安装pyodbc包
我的网络应用程序使用 python361x64 扩展名。请参考我做的步骤如下:
第 1 步:创建 azure web 应用程序并添加扩展(这里是 Python 3.6.1 x64)
第 2 步:发布您的 flask
项目并添加 web.config
.
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
第 3 步:切换到 Kudu CMD 并命令 cd Python361x64
和 touch get-pip.py
并将 url https://bootstrap.pypa.io/get-pip.py
的内容复制到 get-pip.py
通过编辑按钮,然后运行python get-pip.py
安装pip工具。
第 4 步:通过 python -m pip install pyodbc
安装 pyodbc 包或任何你需要的包
更多部署详情,请参考此tutorial。
获取查询结果
访问 url http://***.azurewebsites.net/database
.
我在 Azure 中有一个 Web 应用程序,它在 Python 中运行。 我 运行 Python 在 Azure 上使用 Flask,一切正常,但后来我导入了 pyodbc 来连接我的 sql 服务器,也在 Azure 上,在导入之后我有'service unavailable' 当我访问我的 url.
只有当我导入 pyodbc 时才会出现此问题。
我该如何解决这个问题?
谢谢!
根据我的经验,'service unavailable' 是因为程序内部问题。您可以查看 KUDU url https://***.scm.azurewebsites.net/DebugConsole
.
请参考我的工作步骤安装pyodbc
模块。
view.py
from datetime import datetime
from flask import render_template
from jaygongflask import app
import pyodbc
@app.route('/database')
def database():
"""Renders the about page."""
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=***.database.windows.net;DATABASE=***;UID=***;PWD=***')
cursor = cnxn.cursor()
cursor.execute("select * from dbo.Student")
row = cursor.fetchall()
#for r in row:
# print r
return render_template(
'database.html',
title='Database',
year=datetime.now().year,
message='Database query result.',
queryResult = row
)
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="jaygongflask.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
安装pyodbc包
我的网络应用程序使用 python361x64 扩展名。请参考我做的步骤如下:
第 1 步:创建 azure web 应用程序并添加扩展(这里是 Python 3.6.1 x64)
第 2 步:发布您的 flask
项目并添加 web.config
.
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
第 3 步:切换到 Kudu CMD 并命令 cd Python361x64
和 touch get-pip.py
并将 url https://bootstrap.pypa.io/get-pip.py
的内容复制到 get-pip.py
通过编辑按钮,然后运行python get-pip.py
安装pip工具。
第 4 步:通过 python -m pip install pyodbc
安装 pyodbc 包或任何你需要的包更多部署详情,请参考此tutorial。
获取查询结果
访问 url http://***.azurewebsites.net/database
.