24

ウィンドウ サービスを作成し、それをインストールするために、展開プロジェクトを作成してインストールしました。インストールした後、私はそれを見つめました。無事起動しました。

翌日、いくつかの変更を加え、再構築して再インストールしましたが、現在はインストールされていません。

次に、インストーラーの問題を考え、サービス用のカスタム インストーラーを作成して、いつでもコードを更新できるようにします。

誰かが将来これを必要とする場合に備えて、このように作成しました。

public class MyInstaller : Installer
    {
        ServiceProcessInstaller spi;
        ServiceInstaller si;
        public MyInstaller()
        {            
            spi = new ServiceProcessInstaller();
            spi.Account = ServiceAccount.LocalSystem;

            si = new ServiceInstaller();
            si.StartType = ServiceStartMode.Manual;
            si.ServiceName = "MyService";
            si.DisplayName = "My Service";
            si.Description = "service installed from command line";

            this.Installers.Add(spi);
            this.Installers.Add(si);

        }
}

パラメータargsをチェックして、メインメソッドから呼び出しました。

                            case "-i":
                            case "-install":
                                ti = new TransactedInstaller();
                                mi = new MyInstaller();
                                ti.Installers.Add(mi);
                                string logPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\install.log";
                                ctx = new InstallContext(logPath, cmdline);
                                ti.Context = ctx; //.Context ( ctx );
                                ti.Install(new Hashtable());
                                break;

今、私がインストールしようとしているとき。エラー System.Security.SecurityException: ソースが見つかりませんでしたが、一部またはすべてのイベント ログを検索できませんでした。アクセスできないログ: セキュリティ。

私はそれをググって、インストール中にサービスがアプリケーションログにアクセスしてそこにログを書き込もうとすることを知りました。

イベントログは書いていません。ロギング用のlog4netがあります。しかし、それでもデフォルトの動作です。

今、この問題をどう克服するか? すべての権限を持っていてもインストールされません。

ありがとう

4

3 に答える 3

75

「管理者として実行」が必要になる場合があることがわかりました。コマンド プロンプトからインストールする場合は、「管理者として実行」で起動する必要がある場合があります。

于 2012-05-03T06:27:48.483 に答える