首页 > 解决方案 > 当 django 在 IIS 中托管时,python django 中使用的子进程不起作用

问题描述

我在我的 django web 中使用了子进程包,当我在服务器上本地运行或使用 apache 发布时,它可以正常工作而不会导致任何问题但是当我在 IIS 上托管我的 django web 时,这个子进程不起作用。

以下是我的子流程代码:

files = subprocess.check_output("dir /b " + path, shell=True).decode()
p_pcat=subprocess.Popen(['java', '-cp', str(PARSER_JAR), 'parsePCAT.ParsePCAT', str(pcat_file_name)],stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)

在 IIS(版本 10.0.14393.0)上托管时,这两个功能都不起作用,有人知道吗?

标签: pythondjangoiissubprocess

解决方案


尝试使用高级设置将管理员用户分配给 iis 应用程序池标识。

在此处输入图像描述

在分配管理员用户回收应用程序池并尝试再次访问该站点后。

如果您在进行更改后仍然遇到问题,请在 iis 中启用详细日志记录:

1) 从 iis 中选择站点。

2)点击错误页面。

在此处输入图像描述

3)单击操作窗格中的编辑功能设置。

在此处输入图像描述

访问网站并检查错误。

您还可以通过在 iis 应用程序设置中添加以下变量来记录错误:

https://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019


推荐阅读