2016-10-03 87 views
0

这是我第一次将Azure部署到Web应用程序的体验。 我跟着这个tutorialAzure部署不安装在requirements.txt中列出的Python软件包

他们的默认演示应用程序对我来说工作正常。

之后,我通过git推送了我的Flask应用程序。日志显示部署成功。然而,当我浏览通过链接的托管应用程序的“应用程序属性”提供的,我得到一个500错误如下:

该页无法显示,因为内部服务器错误有 发生。

最有可能的原因:IIS收到请求;但是,在处理请求期间发生内部 错误。 此错误的根本原因取决于哪个模块处理请求,以及发生此错误时工作进程中发生的 是什么。 IIS不是 能够访问网站或应用程序的web.config文件。 如果NTFS权限设置不正确,可能会发生这种情况。 IIS是 无法处理网站或应用程序的配置。 经过身份验证的用户没有使用此DLL的权限。 请求被映射到受管理的处理程序,但未安装.NET可扩展性 功能。

唯一的关闭基地,我可以通过浏览通过KUDU wwwroot文件看到的事情是,没有我已经安装在我的本地虚拟环境在Azure上安装尽管“requirements.txt”文件是否存在的软件包在wwwroot。

我的理解是Azure会在GIT成功推送时安装它在requirements.txt中找到的任何不存在的包。但它似乎并没有发生在我身上。

我做错了什么,缺少的软件包只是一个症状,或者它可能是问题的原因?

注:

  • 我的瓶应用本地工作(Linux)的罚款和对第三方VPS

  • 我调到几次从头开始无济于事(我使用本地GIT法)

  • 我在本地克隆了Azure Flask演示应用程序,更改了应用程序文件夹并将其推回到Azure,但没有成功。

  • Azure是设置到Python 2.7一样的我的虚拟ENV本地

  • 正如上面链接教程的建议,我删除了“ENV”文件夹,并重新部署到Azure的把戏重新安装虚拟ENV。它做了,但它有自己的默认包,而不是我的requirements.txt中的包。

我requirements.txt有以下几点:

bcrypt == 3.1.0 CFFI == 1.7.0点击== 6.6瓶== 0.11。1 Flask-Bcrypt == 0.7.1 Flask-Login == 0.3.2 Flask-SQLAlchemy == 2.1 Flask-WTF == 0.12 itsdangerous == 0.24 Jinja2 == 2.8 MarkupSafe == 0.23 pycparser == 2.14 PyMySQL = = 0.7.7蟒-HTTP-客户== 1.2.3 6 == 1.10.0 smtpapi == 0.3.1 SQLAlchemy的== 1.0.14 WERKZEUG == 0.11.10 WTForms == 2.1

+0

您的应用程序的根目录中是否有'.skipPythonDeployment'文件?并且在部署任务期间是否收到任何错误消息?如果可能,你可以提供你的'requirements.txt'吗? –

+0

@ GaryLiu-MSFT>是的,根目录中有一个.skippythondeployment文件。它只有一个“hello”字符串。部署任务中没有错误消息。它以“已成功部署”消息结束。最后,我使用requirements.txt内容更新了问题。 – user3522242

回答

1
作为

Azure Web Apps将运行deploy.cmd脚本作为部署任务,以控制部署期间将运行哪些命令或任务。

您可以使用Azure-CLI的命令azure site deploymentscript --python来获取python应用程序的部署任务脚本。

,你可以找到在这个deploy.cmd sciprt以下脚本:

IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython 
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython 

echo Detected requirements.txt. You can skip Python specific steps with a .skipPythonDeployment file. 

所以.skipPythonDeployment会跳过部署任务以下所有步骤,包括创建虚拟环境。

您可以尝试从应用程序中删除.skipPythonDeployment,然后重试。

此外,请参阅https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script了解更多信息。

+0

我删除了.skipPythonDeployment,它开始管道包。它在加密时失败了,他的错误“无法找到vcvarsall.bat”,但这是另一个问题,因为你解决了我最初的问题。非常感谢加里! – user3522242