web-dev-qa-db-ja.com

IIS 7-ISAPIエラー「選択したプリンターが無効です」:プリンターを表示するためにISAPIプールを構成するにはどうすればよいですか?

Delphiで作成されたisapi * .dllがあり、httpリクエストでPDFを作成して返します。スタンドアロンexeでビルドするとコードは機能しますが、isapiでは例外が発生します。 「選択したプリンターが無効です」。

ApplicationPoolIdentityの問題のようです。

問題をグーグルで検索すると、この説明が見つかりました( https://stackoverflow.com/a/4619757/293617 ):

これは、Vistaで導入されたセッション0の分離が原因である可能性があります。サービスは常にセッション0で実行されますが、XP以前では、最初にログインしたユーザーもセッション0で実行されるため、サービスはそのユーザーのデスクトップにアクセスできます(したがって、「インタラクティブ」サービスが可能になります)。 )およびリソース(共有やプリンターなど)。Vista以降では、ユーザーはセッション0で実行されなくなるため、サービスはユーザー固有のリソースにアクセスできなくなります。サービスは、アクセスするユーザーアカウントを偽装する必要があります。

また、Windowsサービスで同じコードをビルドし、管理者権限でインストールしました。これで動作します。

問題は、プリンタを表示するためにISAPIプールをどのように構成するか

1
ar099968

私の自己に応答します。

正しいプールIDはLocalSystem

1
ar099968