我已经按照这个文件https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration/建立持续集成使用服务织物托管代理
在释放管道导入证书后,我收到以下错误并部署失败。我不能够识别其中的问题是
[错误]此操作过程中发生错误。请检查跟踪日志了解更多详情。
在完成任务:ServiceFabricDeploy
[错误] System.Exception的:任务ServiceFabricDeploy失败。
这导致作业失败。看日志了解更多详情的任务。
[错误]在Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.Run(IJobContext jobContext,IJobRequest作业,IJobExtension jobExtension,CancellationTokenSource tokenSource)
进口集群客户端证书与指纹“A6B32E70CFE715F608A247C1ED94AB3D0164A58E”。
指纹主题
A6B32E70CFE715F608A247C1ED94AB3D0164A58E> CN = clusternamedns.eastus.cloudapp.azure.com
[错误]此操作过程中发生错误。请检查跟踪日志了解更多详情。
设置system.debug在变量真后,我得到了下面的日志
2016-08-03T05:44:31.6556865Z ##[debug]System.Fabric.FabricException: An error occurred during this operation. Please check the trace logs for more details. ---> System.Runtime.InteropServices.COMException: No credentials are available in the security package (Exception from HRESULT: 0x8009030E)
2016-08-03T05:44:31.6566887Z ##[debug] at System.Fabric.Interop.NativeClient.IFabricClientSettings2.SetSecurityCredentials(FABRIC_SECURITY_CREDENTIALS credentials)
2016-08-03T05:44:31.6577063Z ##[debug] at System.Fabric.FabricClient.SetSecurityCredentialsInternal(SecurityCredentials credentials)
2016-08-03T05:44:31.6587072Z ##[debug] at System.Fabric.Interop.Utility.WrapNativeSyncInvoke[TResult](Func`1 func, String functionTag, String functionArgs)
2016-08-03T05:44:31.6597111Z ##[debug] --- End of inner exception stack trace ---
2016-08-03T05:44:31.6606871Z ##[debug] at System.Fabric.Interop.Utility.RunInMTA[TResult](Func`1 func)
2016-08-03T05:44:31.6647953Z ##[debug] at System.Fabric.FabricClient.InitializeFabricClient(SecurityCredentials credentialArg, FabricClientSettings newSettings, String[] hostEndpointsArg)
2016-08-03T05:44:31.6656886Z ##[debug] at Microsoft.ServiceFabric.Powershell.ClusterConnection.FabricClientBuilder.Build()
2016-08-03T05:44:31.6666879Z ##[debug] at Microsoft.ServiceFabric.Powershell.ClusterConnection..ctor(FabricClientBuilder fabricClientBuilder, Boolean getMetadata)
2016-08-03T05:44:31.6676869Z ##[debug] at Microsoft.ServiceFabric.Powershell.ConnectCluster.ProcessRecord()
2016-08-03T05:44:31.6770225Z ##[debug]Leaving C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1.
2016-08-03T05:44:31.6850322Z ##[debug]Caught exception from task script.
2016-08-03T05:44:31.6890370Z ##[debug]Error record:
2016-08-03T05:44:31.7380329Z ##[debug]Connect-ServiceFabricCluster : An error occurred during this operation. Please check the trace logs for more details.
2016-08-03T05:44:31.7390333Z ##[debug]At C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1:73 char:12
2016-08-03T05:44:31.7410325Z ##[debug]+ [void](Connect-ServiceFabricCluster @clusterConnectionParameters)
2016-08-03T05:44:31.7420325Z ##[debug]+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-08-03T05:44:31.7430323Z ##[debug] + CategoryInfo : InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricException
2016-08-03T05:44:31.7440363Z ##[debug] + FullyQualifiedErrorId : CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster
2016-08-03T05:44:31.7450426Z ##[debug]
2016-08-03T05:44:31.7470318Z ##[debug]Script stack trace:
2016-08-03T05:44:31.7500512Z ##[debug]at <ScriptBlock>, C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.103.1\tasks\ServiceFabricDeploy\1.0.1\deploy.ps1: line 73
2016-08-03T05:44:31.7910331Z ##[debug]at <ScriptBlock>, <No file>: line 1
2016-08-03T05:44:31.7920318Z ##[debug]at <ScriptBlock>, <No file>: line 22
2016-08-03T05:44:31.7930364Z ##[debug]at <ScriptBlock>, <No file>: line 18
2016-08-03T05:44:31.7940315Z ##[debug]at <ScriptBlock>, <No file>: line 1
2016-08-03T05:44:31.7960349Z ##[debug]Exception:
2016-08-03T05:44:31.8000522Z ##[debug]System.Fabric.FabricException: An error occurred during this operation. Please check the trace logs for more details. ---> System.Runtime.InteropServices.COMException: No credentials are available in the security package (Exception from HRESULT: 0x8009030E)
2016-08-03T05:44:31.8010571Z ##[debug] at System.Fabric.Interop.NativeClient.IFabricClientSettings2.SetSecurityCredentials(FABRIC_SECURITY_CREDENTIALS credentials)
2016-08-03T05:44:31.8020684Z ##[debug] at System.Fabric.FabricClient.SetSecurityCredentialsInternal(SecurityCredentials credentials)
2016-08-03T05:44:31.8030335Z ##[debug] at System.Fabric.Interop.Utility.WrapNativeSyncInvoke[TResult](Func`1 func, String functionTag, String functionArgs)
2016-08-03T05:44:31.8040334Z ##[debug] --- End of inner exception stack trace ---
2016-08-03T05:44:31.8060326Z ##[debug] at System.Fabric.Interop.Utility.RunInMTA[TResult](Func`1 func)
2016-08-03T05:44:31.8070343Z ##[debug] at System.Fabric.FabricClient.InitializeFabricClient(SecurityCredentials credentialArg, FabricClientSettings newSettings, String[] hostEndpointsArg)
2016-08-03T05:44:31.8080330Z ##[debug] at Microsoft.ServiceFabric.Powershell.ClusterConnection.FabricClientBuilder.Build()
2016-08-03T05:44:31.8090325Z ##[debug] at Microsoft.ServiceFabric.Powershell.ClusterConnection..ctor(FabricClientBuilder fabricClientBuilder, Boolean getMetadata)
2016-08-03T05:44:31.8100358Z ##[debug] at Microsoft.ServiceFabric.Powershell.ConnectCluster.ProcessRecord()
2016-08-03T05:44:31.8340330Z ##[error]An error occurred during this operation. Please check the trace logs for more details.
Nrendramche
我觉得这里的问题可能是您正在使用的SF端点的CER证书文件的Base64编码,而不是PFX文件的Base64编码(这通常是由密码保护)。
下面的PowerShell脚本帮助在PFX文件转换为Base64编码字符串。它输出字符串到一个文本文件。
$fileContentBytes = get-content 'C:\<your-certificate>.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\pfx-bytes.txt'
但是,当您在记事本中打开该文件(包含Base64编码字符串),做全选(Ctrl + A)运行,在文件的最后一个额外的行(中断)被复制。而创建的任务服务织物应用程序部署集群服务连接的过程中添加客户端证书这种额外的行获取粘贴。
删除多余的,它应该工作。我希望这个答案可以帮助为好。