I have set up continuous integration using Hosted Agent for service fabric by following this document https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration/
In Release pipeline after importing certificate I am getting the following error and deployment failing. I am not able to identify where the issue is
[error]An error occurred during this operation. Please check the trace logs for more details.
Finishing task: ServiceFabricDeploy
[error]System.Exception: Task ServiceFabricDeploy failed.
This caused the job to fail. Look at the logs for the task for more details.
[error] at Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.Run(IJobContext jobContext, IJobRequest job, IJobExtension jobExtension, CancellationTokenSource tokenSource)
Under Deploy service fabric task it is showing the below error
Imported cluster client certificate with thumbprint 'A6B32E70CFE715F608A247C1ED94AB3D0164A58E'.
Thumbprint Subject
A6B32E70CFE715F608A247C1ED94AB3D0164A58E >CN=clusternamedns.eastus.cloudapp.azure.com
[error]An error occurred during this operation. Please check the trace logs for more details.
After setting system.debug to true in variables, I got the following log
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.
narendramacha
I think the problem here could be that you are using the Base64 of the cer certificate file on the SF endpoint, rather than Base64 of the PFX file (which is normally protected by a password).
The below PowerShell scripts help in converting the PFX file to Base64 string. It outputs the string to a text file.
$fileContentBytes = get-content 'C:\<your-certificate>.pfx' -Encoding Byte
[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'C:\pfx-bytes.txt'
However, when you open the file (that contains Base64 string) in notepad and do a select all (CTRL + A) operation, an extra line (break) at the end of the file gets copied. This extra line gets pasted while adding the Client certificate during the creation of Cluster Service Connection for the task Service Fabric Application Deployment.
Delete that extra line and it should work. I hope this answer helps as well.
User contributions licensed under CC BY-SA 3.0