如何让iis8.5服务与桌面交互
How to allow iis8.5 service to interact with desktop
问题是我根本找不到这个选项。
我需要 运行 来自 iis 的 winforms 应用程序,但我无法实现它。
Сan 有人给我提示。
我试图为站点池提供本地系统和管理员身份,但它不起作用,只处理 运行ning 而没有任何 window。
更新
感谢answer,我检查了"allow service to interact with desktop",但仍然window没有出现
更新2
我什至试过这个one answer,and second one但根本无法启动进程
从 Windows Vista 开始,'Interact With Desktop' 设置受到限制。交互式服务容易受到所谓的 'shatter' 攻击,其中高权限进程无法正确验证低权限进程 [=35= 发送给它的 window 消息的参数] 在同一个桌面上。这可能会导致安全漏洞。作为纵深防御措施,Microsoft 将控制台会话从 Windows 的先前版本中的会话 0 更改为会话 1。交互式服务仍然 运行 在会话 0 上并且可以创建 UI,或 运行 其他程序显示 UI,但用户看不到它们,也无法接收来自其他进程的恶意消息。
为了兼容性,Windows 包括交互式服务检测服务 (Ui0detect)。如果交互式服务创建了一个新的 window,这会生成一个提示,告诉用户它正在尝试显示一条消息并请求他们切换到会话 0 以查看它。
但是,在Windows 8 上,此服务现在设置为手动启动,如果NoInteractiveServices
注册表值设置为1,它将无法启动(报告错误1,功能不正确) ,默认情况下。该值低于 HKLM\SYSTEM\CurrentControlSet\Control\Windows
。 (source)
我强烈建议不要这样做。交互式服务必须 运行 在具有高特权的 LocalSystem 安全上下文中。您的代码不太可能真的需要这些特权。相反,将 UI 编写为从用户的启动程序组或各种 运行 注册表项之一启动的低特权进程,并连接到 Web 应用程序,轮询启动信号您需要启动的过程。您可以使用 SignalR 通知启动器该启动应用程序了。
问题是我根本找不到这个选项。 我需要 运行 来自 iis 的 winforms 应用程序,但我无法实现它。 Сan 有人给我提示。
我试图为站点池提供本地系统和管理员身份,但它不起作用,只处理 运行ning 而没有任何 window。
更新
感谢answer,我检查了"allow service to interact with desktop",但仍然window没有出现
更新2
我什至试过这个one answer,and second one但根本无法启动进程
从 Windows Vista 开始,'Interact With Desktop' 设置受到限制。交互式服务容易受到所谓的 'shatter' 攻击,其中高权限进程无法正确验证低权限进程 [=35= 发送给它的 window 消息的参数] 在同一个桌面上。这可能会导致安全漏洞。作为纵深防御措施,Microsoft 将控制台会话从 Windows 的先前版本中的会话 0 更改为会话 1。交互式服务仍然 运行 在会话 0 上并且可以创建 UI,或 运行 其他程序显示 UI,但用户看不到它们,也无法接收来自其他进程的恶意消息。
为了兼容性,Windows 包括交互式服务检测服务 (Ui0detect)。如果交互式服务创建了一个新的 window,这会生成一个提示,告诉用户它正在尝试显示一条消息并请求他们切换到会话 0 以查看它。
但是,在Windows 8 上,此服务现在设置为手动启动,如果NoInteractiveServices
注册表值设置为1,它将无法启动(报告错误1,功能不正确) ,默认情况下。该值低于 HKLM\SYSTEM\CurrentControlSet\Control\Windows
。 (source)
我强烈建议不要这样做。交互式服务必须 运行 在具有高特权的 LocalSystem 安全上下文中。您的代码不太可能真的需要这些特权。相反,将 UI 编写为从用户的启动程序组或各种 运行 注册表项之一启动的低特权进程,并连接到 Web 应用程序,轮询启动信号您需要启动的过程。您可以使用 SignalR 通知启动器该启动应用程序了。