当前位置: 首页 > 面试题库 >

在Azure上发布Flask Web App

刘嘉木
2023-03-14
问题内容

我有Flask网络应用程序,我正在尝试在Azure上发布。我将其部署在Web应用程序上,创建了新资源,下载了用户发布的配置文件,并使用下载的文件从Visual
Studio中发布了它。一切都可以在localhost上顺利运行,但是一旦发布就会出现错误:

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

我几乎不知道这意味着什么。这是我发布的第一个网站,非常新手。

我的项目具有以下结构。
在此处输入图片说明

我的Views.py使用以下代码调用senna-win32.exe:

 senna_path = os.path.join('senna\\senna-win32.exe')
 p = subprocess.Popen(senna_path, stdout=subprocess.PIPE,stdin=subprocess.PIPE)
 grep_stdout = p.communicate(input=bytes(va, 'utf-8'))[0]
 inList = grep_stdout.decode()
 inList = list(inList.splitlines())

它在我的本地主机上似乎没有问题/错误,但不确定天蓝怎么回事。


问题答案:

根据我的经验,有很多原因会导致像您一样的问题。

对于第一种情况,reqirements.txt文件中所需的某些Python程序包未直接安装在Azure
WebApp上。对于这种情况,您需要遵循官方规章进行故障排除以解决该问题。甚至,对于其他使用python脚本解决该问题的SO线程发布MVC应用程序,您也可以尝试遵循我的解决方案

但是,我认为您的问题可能是由senna_path代码中的引起的,这不是Azure
WebApp上的有效路径。我尝试如下创建一个简单的Python脚本,以使用Azure
WebApp上的Kudu控制台测试您的代码,通过command可以正常工作python test.py > test.out.txt

import os
from subprocess import Popen, PIPE

path = os.path.join('senna-win32.exe')
p = Popen(path, stdin=PIPE, stdout=PIPE)
grep_stdout = p.communicate(input="happy time".encode('utf-8'))[0]
inList = grep_stdout.decode()
inList = list(inList.splitlines())
print inList

因此,我的建议是尝试使用绝对路径D:\home\site\wwwroot\FlaskWebProject1\senna\senna- win32.exe代替senna\senna-win32.exe您的应用程序来解决问题。

任何更新,请随时让我知道。



 类似资料:
  • 我理解对了吗?

  • 我在Visual Studio中创建了一个简单的blob触发器,init.py如下 function.json如下 local.settings。json如下所示 此代码在本地计算机上的visual studio中运行良好。但在azure portal上发布时,它无法从函数中读取blob路径。json并给出错误为 我已经使用命令发布了local.settings.json的contains。 .有

  • 我试图在Azure运营模式发布管道上创建Click一旦部署我创建签名,清单,应用程序,部署文件与证书但是我如何创建exe和安装文件(通过Azure运营模式发布管道)

  • 看起来,PublishBuildArtifacts任务在发布环境中不可用。 https://docs.microsoft.com/de-de/azure/devops/pipelines/tasks/utility/publish-pipeline-artifact?view=azure-德沃斯 但是,当我们的客户从Azure存储库(通用软件包)中获取新的工件版本时,有机会通过发布管道发布这些工件

  • 我有一个java应用程序,并试图使用Azure运营模式来构建和部署。能够进行构建并在构建管道中发布工件。在发布管道中,我在每个阶段都有一个maven任务来分解特定于环境的构建,我可以这样做,但是我想把它作为一个类似于构建管道中的工件来发布。有没有任何任务可以做到这一点或任何其他替代方法?