38

作成した .NET サービスをインストールしようとしています。MSDN で推奨されているように、InstallUtil を使用しています。しかし、コマンドラインまたはサービス自体でデフォルトのサービスユーザーを設定する方法を見逃していました。これで、InstallUtil を実行すると、ユーザーの資格情報を求めるダイアログが表示されます。サービスのインストールをより大きなインストールに統合しようとしていますが、サービスのインストールをサイレントのままにする必要があります。

4

5 に答える 5

46

たぶん見つかったと思います。サービス自体では、自動的に作成された ServiceProcessInstaller コンポーネントには、「LocalService」、「LocalSystem」、「NetworkService」、または「User」に設定できるプロパティ「Account」があります。プロンプトを表示したに違いない「ユーザー」にデフォルト設定されていました。

于 2008-08-28T13:07:36.167 に答える
4

お気づきのとおり、カリム、「アカウント」プロパティが解決策です。このプロパティによって設定されるセキュリティ コンテキストの違いに関心がある場合:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx

InstallUtil または SC を使用する上で、SELF INSTALLERを作成するというアイデアが気に入っています。

http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx

.Net 1.1のドキュメントでこれを見つけましたが:

ManagedInstallerClass型は .NET Framework インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

于 2009-07-16T22:50:46.510 に答える
3

また、 VisualStudioをインストールする必要のないSC.exeutilにも注意してください。このexeを、サービスを作成するサーバーにコピーするか、リモートで実行することもできます。objパラメーターを使用してユーザーを指定します。

どうやらこのツール用のGUIがありますが、私はそれを使用していません。

于 2008-09-10T15:07:17.723 に答える
0

サービスを実行するためのアカウント、またはサービスをインストールする権利を求められていますか? 2 つ目は、管理者としてインストールすることで、そのようなことが起こらないようにする必要があります。最初に、ServiceProcessInstaller をインストーラーに追加する必要があります。

サービスのデザイン画面には、プロジェクト インストーラーを作成するためのリンクがあると思います。そのデザイナーでは、System.ServiceProcess.ServiceProcessInstaller タイプのプロセス インストーラーを追加できます。このオブジェクトのプロパティを使用すると、サービスに使用するアカウントを設定できます。

于 2008-08-28T13:09:39.687 に答える