在WindowsIIS

问题描述 投票:0回答:1

I在Windows Server 2022Standard

中托管了我的Django应用程序在Windows IIS上

但是我的应用程序具有打开软件(.EXE)并运行网站请求中提供的特定用户任务的功能。

,例如,用户从我的网站提供了一些输入,然后通过打开我不使用python代码在

views.py

中的python拥有的软件来处理它。

script_path = "C:\inetpub\wwwroot\webapp\script\runthescript.py" subprocess.run(["C:/Program Files/My Soft/Soft.exe", "-runScriptFile", script_path])
我的问题

当我使用Admin特权和

python manage.py runserver

访问时,我在本地测试了我的应用程序时,但是当我在使用IIS托管IIS之后尝试使用时,所有工作都可以启动。

我尝试了什么:
我尝试将我的AppPool身份提供为(IIS AppPool \ WebApp)管理员特权。
使用任务调度程序进行了尝试,但它可以与背景过程一起使用,但与GUI应用程序无效。
issue

当我谷歌搜索时,我发现这是由于

session 1

privileges

访问。 IIS只有

session 0

,因此无法访问GUI。 您的小帮助,想法或建议绝对对我有帮助。 :)

我在使用Django上运行Linux可执行执行时遇到了类似的挑战。
Windows IIS上的Django面临的问题是一个基本的Windows安全功能,称为“
Session0 Inlyation”。当我使用Django在Ubuntu上实现了类似的功能时,权限模型完全不同,但这是我在Windows Server 2022上处理此功能的方式。 在使用Django的Ubuntu服务器上,我们通常会担心文件权限和可执行文件。但是,在与IIS的Windows Server上,您面临着不同的挑战。您的应用程序在“
Session0
”中运行 - 一个专门的Windows会话,其中从用户界面隔离的服务运行。引入了这种隔离,以防止Windows Vista和Server 2008的攻击。
当您在本地运行django应用程序时,它在您的交互式用户会话(会话1或更高)中运行,具有完整的GUI功能。但是当在IIS上托管时,它仅限于会话0,默认情况下不能向用户显示GUI元素。
使用

FiredaemonZero

python django iis permissions windows-server
1个回答
0
投票
创建Windows服务包装器

在Ubuntu中,我通常会创建具有适当执行权的SystemD服务。 Windows等效的是创建一个运行您的EXE的Windows服务:

session 0 isolation 对于IIS,特别是:

Windows Security(GUI或ICACLS命令)中的AppPool身份适当权限

配置应用程序池以作为特定用户运行,并使用台式机访问运行

评估IIS经理的委派申请管理权限

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.