当 django 在 IIS 中托管时,python django 中使用的子进程不起作用

Posted

技术标签:

【中文标题】当 django 在 IIS 中托管时,python django 中使用的子进程不起作用【英文标题】:subprocess used in python django does not working when django was host in IIS 【发布时间】:2020-10-09 06:38:09 【问题描述】:

我在我的 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)上托管时,这两个功能都不起作用,有人知道吗?

【问题讨论】:

由 IIS 控制的子进程不能很好地与 Django 一起工作。如果您需要运行子进程,我的建议是使用 Waitress 或 Apache。您可以在 YouTube 上找到有关如何设置的教程 【参考方案1】:

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

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

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

1) 从 iis 中选择网站。

2)点击错误页面。

3) 在操作面板中单击编辑功能设置。

访问网站并检查错误。

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

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

【讨论】:

以上是关于当 django 在 IIS 中托管时,python django 中使用的子进程不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Fileless Restful WCF 在本地 IIS7 中托管时无法正常工作,但可以在本地运行

在 IIS 中托管 WCF 服务时协议映射错误

在 pythonanywhere 中托管时,django python 中的 Cloudinary Image Upload 错误

在 IIS 中托管 WCF 服务时如何避免 CommunicationObjectFaultedException?

Django 登录错误:在 IIS 中“尝试写入只读数据库”

Glyphicons 在开发中显示良好,但在 IIS 中托管时却没有