カスタムWindowsサービスを作成しました。展開パッケージはInstallShieldで実行され、インストールはサービスログオンアカウントのユーザー名とパスワードの入力を求めます。
さまざまなWindows 7(Professional)およびWindows 8マシンへのインストールにまったく問題はありませんでしたが、Windows 7 Ultimateマシンにデプロイしようとすると1920エラーが発生します。この問題がOSであるのか、これをインストールしようとしている特定のマシンであるのかはまだ確認されていません。
インストーラーは常に右クリックして「管理者として実行」で実行され、ユーザー(インストーラーを実行しているユーザーと資格情報が提供されているログオンユーザーの両方)はマシンの管理者です。通常、サービスをインストールするログインユーザーと、サービスを実行するログオンユーザーは同じです。
これが私たちが試したものです。
しかし、上記のいずれも機能しません。
他の誰かが同様の問題に遭遇し、修正されたことを願っています。
更新:
私も次のことを試しました:
1920は、サービスが開始されなかったことを意味する一般的なエラーコードです。私の予感はこれです:
http://blog.iswix.com/2008/09/different-year-same-problem.html
確認するには、インストーラーを中止して、再試行、無視、ダイアログをキャンセルします... services.mscに移動し、ユーザー名とパスワードを手動で設定します。ユーザーにサービスとしてログオンする権限が付与されたことを示すメッセージが表示された場合は、MSIダイアログで再試行を押して、開始されるかどうかを確認してください。
また、コードにスローされている依存関係または例外が欠落している可能性もあります。
インストール/アンインストールを開始する前に、すべてのサービスウィンドウが閉じていることを確認してください
私も同じ問題を抱えていました。 .NET frameworkバージョン4.5をインストールすることでこれを修正しました。
サービスを確認してください依存関係それらが無効の場合。
これらの依存関係を[自動]に設定し、開始すると、動作するはずです。
回避策:これは、Windows Server 2012 R2でも確認されている問題です。理由も解決策もまだ見つかりません。これが私の回避策です。
エラーが表示されているインストール中に、Services.mscに移動します。エラーをスローするサービスを見つけて、サービスのログイン情報にパスワードを再入力します。次に、セットアップで「再試行」を押します。できます。
同じユーザーに対してエラーが再び表示されることはありません。ただし、別のユーザーに対して表示されます。
私の場合、installshieldプロジェクトのサービスを削除し、正方形から開始する必要がありました。元のサービスコンポーネントを手動で追加したため、それらを機能させることができませんでした。同じエラーのみが表示されました "エラー1920サービスを開始できませんでした。システムサービスを開始するための十分な特権があること。 "コンポーネントを削除した後、コンポーネントウィザードを使用してコンポーネントを再追加しました。
実際には、2つの新しいコンポーネントを作成する必要がありました。 1つは「サービスのインストール」タイプでした。
追加する必要があった他のコンポーネントは、「コントロールサービス」タイプでした。
Install Serviceコンポーネントを追加したときにセットアップしたサービスを選択する必要がありました。
その後は、手動で追加したコンポーネントと外観が異なるものはありませんでしたが、機能しました。 Installshieldは、コンポーネントウィザードでサービスコンポーネントを接続するときに、舞台裏で何かを行う必要があります。
これはすべてInstall Shield 2016で行われました。
私の場合、wixファイルでPlatform='x64'
を設定しなかったため、サービスを開始できませんでした。
イベントビューアで次のエラーを見ました。
サービスを開始できません。
System.BadImageFormatException:ファイルまたはアセンブリ「SOME_LIBRARY_FILE、Version = 5.0.0.0、Culture = neutral、PublicKeyToken = 33345856ad364e35」またはその依存関係の1つをロードできませんでした。
CorFlags.exe
を使用して、すべてのサービス関連ファイルのビット数をチェックしてみました。インストーラーを64 bit
に変更すると、すべてが正常に動作し始めました。
この答えは別のサイトで見つけましたが、間違いなく私のために働いたので、共有したいと思いました。
Windowsエクスプローラーで:C:\ Program Files\Common Files\Microsoft SharedのOfficeSoftwareProtection Platformフォルダーを右クリックし、C:\ Program dataのMicrosoft(これは隠しフォルダーです)プロパティ>セキュリティ>編集>追加>ネットワークサービスの入力> [OK]> [フルコントロール]ボックスをオンにし、[適用]および[OK]をクリックします。
レジストリエディター(regedit.exe)で:HKEY_CLASSES_ROOT\AppIDレジストリに移動し、フォルダーを右クリック>権限>追加>タイプ= NETWORK SERVICE> OK>フルコントロールのチェック>適用> OK
もともとはジェニファー・チャンによって発見された方法でした
イベントビューアを開き、ウィンドウログ->アプリケーションに移動し、このエラーの前のエラーを確認します。解決しようとしている実際のエラーが表示されます。
ソフトウェアのテスト中にこの問題が発生しました。ドライバーは署名されていません。
ヒント:コマンドラインで:(管理者)bcdedit/set TESTSIGNING ONしてマシンを再起動します(shutdown -r -t 5)