6

jenkins を使用して、Windows 2012 R2 x64 で特定のソフトウェアをビルドしたいと考えています。しかし、実行しようとすると、マスターノードが失敗し、次のエラーが発生します。

Connecting to 192.168.1.27
Checking if Java exists
C:\Program Files\Java\jdk1.6.0_30\bin\java.exe -version returned 1.6.0.
Installing the Jenkins slave service
ERROR: Message not found for errorCode: 0xC00000AC
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC00000AC
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:102)
    at hudson.util.jna.DotNet.isInstalled(DotNet.java:77)
    at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:292)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:222)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)
Caused by: jcifs.smb.SmbException: All pipe instances are busy.
    at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    at jcifs.smb.SmbTransport.send(SmbTransport.java:664)
    at jcifs.smb.SmbSession.send(SmbSession.java:238)
    at jcifs.smb.SmbTree.send(SmbTree.java:119)
    at jcifs.smb.SmbFile.send(SmbFile.java:775)
    at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
    at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
    at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
    at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:91)
    at rpc.Stub.attach(Stub.java:104)
    at rpc.Stub.call(Stub.java:109)
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:100)

何が悪いのかわかりません。

はい、私はこれを注意深く読みまし

更新。わかった。ドメインからサーバーを削除しました。今ジェンキンスは言います:

192.168.1.27 に接続中
    Java が存在するかどうかの確認
    C:\Program Files\Java\jdk1.6.0_30\bin\java.exe -バージョンは 1.6.0 を返しました。
    Jenkins スレーブ サービスのインストール
    jenkins-slave.exe のコピー
    slave.jar のコピー
    jenkins-slave.xml のコピー
    サービスの登録
    サービスの開始
    サービスの準備が整うのを待っています
    エラー: サービスが応答しませんでした。起動に失敗したのではないでしょうか?

EventViewer では次のように表示されます。

サービスを開始できません。System.ComponentModel.Win32Exception: 指定されたファイルが見つかりません
       System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) で
       winsw.WrapperService.StartProcess (プロセス プロセス、文字列引数、文字列実行可能ファイル) で
       winsw.WrapperService.OnStart (文字列 [] _) で
       System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback (オブジェクトの状態) で
4

6 に答える 6

10

Windows 2012 R2 x64 でも同じ問題が発生しました。

    Installing the Jenkins slave service
ERROR: Message not found for errorCode: 0xC00000AC
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC00000AC
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:102)
    at hudson.util.jna.DotNet.isInstalled(DotNet.java:77)
    at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:292)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:228)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: jcifs.smb.SmbException: All pipe instances are busy.
    at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    at jcifs.smb.SmbTransport.send(SmbTransport.java:664)
    at jcifs.smb.SmbSession.send(SmbSession.java:238)
    at jcifs.smb.SmbTree.send(SmbTree.java:119)
    at jcifs.smb.SmbFile.send(SmbFile.java:775)
    at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
    at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
    at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
    at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:91)
    at rpc.Stub.attach(Stub.java:104)
    at rpc.Stub.call(Stub.java:109)
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:100)
    ... 7 more

そして、サービスとして実行されるjenkinsスレーブには.net 3.xがインストールされている必要があることがわかりました(win2012サーバーではデフォルトではインストールされていません)。

3.5 .net フレームワークをインストールした後、jenkins スレーブ サービスは問題なくインストールされました (サーバーはドメインに残りました)。

私が行ったように 3.5 フレームワークのインストール中に問題が発生した場合に時間を無駄にしないようにするには、この SO の回答を参照してください: .Net 3.5 SP1 のオフライン インストーラーが機能していません(WSUS を無効にすると、インストールが完了しました)

于 2014-08-22T12:25:16.973 に答える
0

まず、スレーブ マシンに移動し、Jenkins -> Manage -> Manage Nodes に移動し、スレーブを選択して Java Web Start 経由で起動します。

これにより、.jnlp ファイルをダウンロードし、自分で構成した Java を使用して起動します。

システム変数「PATH」に javaws.exe へのパスが設定されていることを確認してください (バージョン 1.6 以降)。

ウィンドウが起動し、「接続済み」と表示されます。「ファイル」をクリックして、サービスとしてインストールできます。

マシンに .NET 3.x がインストールされていない場合、これは失敗して例外が発生するため、インストールされていることを確認してから、もう一度試してください。

これは問題なくきれいに動作します。お役に立てれば。

于 2014-08-11T14:31:51.040 に答える
0

私にとって、この問題は古い Java をアンインストールすることで解決されました。

于 2015-08-20T13:19:30.003 に答える