首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure上发布Flask Web应用程序

在Azure上发布Flask Web应用程序
EN

Stack Overflow用户
提问于 2017-01-21 23:09:02
回答 2查看 3K关注 0票数 0

我有一个水瓶座的网络应用程序,我试图发表在天青。我在web应用程序上部署了它,创建了新的资源,下载了用户发布配置文件,并使用下载的文件从visual studio发布了它。在本地主机上,一切运行都很顺利,但是一旦发布了im获取错误:

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

我几乎不知道这意味着什么。这是我的第一个网站,所以我很新鲜。

我的项目有如下结构。

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

代码语言:javascript
复制
 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())

我的本地主机上似乎没有任何问题/错误,但不确定发生了什么事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-23 08:02:55

根据我的经验,有许多原因会导致像你这样的问题。

对于第一种情况,reqirements.txt文件中需要的一些Python包不是直接安装在Azure WebApp上的。对于这种情况,您需要遵循故障排除的官方图腾来解决它。甚至,您也可以尝试按照我的解决方案为另一个线程发布使用python脚本的MVC应用程序来解决它。

但是,我认为您的问题可能是由于代码中的senna_path不是Azure WebApp上的有效路径造成的。我尝试创建一个简单的Python脚本,如下所示在Azure WebApp上使用Kudu控制台测试您的代码,它通过命令python test.py > test.out.txt工作得很好。

代码语言:javascript
复制
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来解决这个问题。

如有任何更新,请随时通知我。

票数 2
EN

Stack Overflow用户

发布于 2018-05-21 10:28:23

我也有同样的问题,在我的例子中,问题是缺少了stderr的重定向,就像我只重定向stdout+stdin的代码一样。

添加stderr=PIPE解决了我的问题。

代码语言:javascript
复制
process = Popen(exe_relative_path, stdin=PIPE, stdout=PIPE, stderr=PIPE)  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41785517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档