使用Kudu在Azure上部署Flask-仅显示默认页面

问题描述

我在Python中构建了Flask应用并将其部署到了Azure。我在本地测试了该应用,一切正常。我正在使用Kudu在Windows和Python 3.6上进行部署。

但是,一旦成功部署了应用程序,我只能看到页面

此网站正在运行Python 3.6.6

据我所见,故障出在Kudu web.config文件上,该文件如下所示:

<configuration>
  <appSettings>
    <add key="pythonpath" value="%systemDrive%\home\site\wwwroot" />
    <add key="Wsgi_HANDLER" value="hostingstart-python.application" />
  </appSettings>
</configuration>

由于某种原因,它指向hostingstart-python.application(具有.html.py文件),该文件确实显示页面

我的/wwwroot文件夹如下所示:

env
templates
.gitignore
app.py
config.py
file_manager.py
hostingstart-python.html
hostingstart-python.py
README.md
requirements.txt
web.config

我尝试了web.config文件的各种版本,例如以下版本,但是没有任何运气。 对于Wsgi_HANDLER,我输入了Web应用程序的名称,但是也许必须有另一个名称吗?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Wsgi_HANDLER" value="UploadToolApp.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\python364x64\python.exe|D:\home\python364x64/scripts\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
    </handlers>
  </system.webServer>
</configuration>

这将导致:

由于发生内部服务器错误,因此无法显示页面

解决方法

解决方案是切换到Linux计算机,然后一切按预期运行。