1

問題は、このオプションがまったく見つからなかったことです。iis から winforms アプリを実行する必要がありますが、実現できませんでした。だれかヒントを教えてください。

localsystem と admin の ID をサイト プールに付与しようとしましたが、機能していません。プロセスがウィンドウなしで実行されているだけです。


アップデート

回答のおかげで「サービスがデスクトップと対話できるようにする」をチェックしましたが、それでもウィンドウは表示されません


Update2

私はこの1つの答えと2番目の答えを試しましたが、プロセスをまったく開始できません

4

1 に答える 1

3

[デスクトップと対話] 設定は、Windows Vista 以降で制限されていました。対話型サービスは、いわゆる「粉砕」攻撃の影響を受けやすく、同じデスクトップ上で実行されている権限の低いプロセスから送信されたウィンドウ メッセージのパラメーターを、高い権限のプロセスが適切に検証しないためです。これは、セキュリティの脆弱性につながる可能性があります。多層防御の手段として、Microsoft はコンソール セッションを以前のバージョンの Windows のようにセッション 0 からセッション 1 に変更しました。対話型サービスは引き続きセッション 0 で実行され、UI を作成したり、UI を表示する他のプログラムを実行したりできます。しかし、ユーザーはそれらを見ることができず、他のプロセスから悪意のあるメッセージを受け取ることはできません。

互換性のために、Windows には Interactive Service Detection サービス (Ui0detect) が含まれています。対話型サービスが新しいウィンドウを作成すると、メッセージを表示しようとしていることをユーザーに伝え、それを見るためにセッション 0 に切り替えるように要求するプロンプトが生成されます。

NoInteractiveServicesただし、Windows 8 では、このサービスは手動で開始するように設定されており、レジストリ値が 1 (既定値) に設定されている場合は開始されません (エラー 1 が報告され、機能が正しくありません) 。この値は 未満HKLM\SYSTEM\CurrentControlSet\Control\Windowsです。(ソース

これを行わないことを強くお勧めします。対話型サービスは、高度な特権を持つ LocalSystem セキュリティ コンテキストで実行する必要があります。コードが実際にそれらの特権を必要とすることはほとんどありません。代わりに、ユーザーのスタートアップ プログラム グループまたはさまざまな Run レジストリ キーのいずれかから起動される低特権プロセスとして UI を記述し、Web アプリケーションに接続して、起動する必要があるプロセスを起動するシグナルをポーリングします。 . SignalR を使用して、アプリケーションを起動する時間になったことをランチャーに通知できます。

参照:サービスとドライバーのセッション 0 の分離

于 2015-07-22T15:43:48.027 に答える