当 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 中托管时无法正常工作,但可以在本地运行
在 pythonanywhere 中托管时,django python 中的 Cloudinary Image Upload 错误
在 IIS 中托管 WCF 服务时如何避免 CommunicationObjectFaultedException?