I am not able to register Self Hosted Integration Runtime
on my Machine.
This is the error I am getting :
The Integration Runtime (Self-hosted) node has encountered an error during registration. Unable to determine the Integration Runtime (Self-hosted) node status. Confirm that the Integration Runtime (Self-hosted) Host Service is running, and a valid SSL certificate has been specified.
In the Logs I get this information :
Failed to get service token from ADF service with key IR@a68e529a-ae7a-724fff69aad6@xxxDataFactory@ServiceEndpoint=xxxdatafactory.eastus.datafactory.azure.net@****************** and time cost is: 3.8236143 seconds, the error code is: UnexpectedFault, activityId is: 40797b25-a932-4e79-86dd-ccbcd4d7cf7f and detailed error message is An error occurred while sending the request.
The underlying connection was closed: An unexpected error occurred on a send.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host
Please let me know how to troubleshoot this error.
Comments and answers are welcome.
Edit: adding error screen shots for reference:
This is what error looks like
"ClassName": "System.Net.Http.HttpRequestException",
"Message": "An error occurred while sending the request.",
"Data": null,
"InnerException": {
"ClassName": "System.Net.WebException",
"Message": "The underlying connection was closed: An unexpected error occurred on a send.",
"Data": null,
"InnerException": {
"ClassName": "System.IO.IOException",
"Message": "Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.",
"Data": null,
"InnerException": {
"NativeErrorCode": 10054,
"ClassName": "System.Net.Sockets.SocketException",
"Message": "An existing connection was forcibly closed by the remote host",
"Data": null,
"InnerException": null,
"HelpURL": null,
"StackTraceString": " at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)rn at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)",
"RemoteStackTraceString": null,
"RemoteStackIndex": 0,
"Source": "System",
"WatsonBuckets": null
},
"HelpURL": null,
"StackTraceString": " at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)rn at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)",
"RemoteStackTraceString": null,
"RemoteStackIndex": 0,
"Source": "System",
"WatsonBuckets": null
},
"HelpURL": null,
"StackTraceString": " at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)rn at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)",
"RemoteStackTraceString": null,
"RemoteStackIndex": 0,
"ExceptionMethod": "8nEndGetResponsenSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken
"HResult": -2146233079,
"Source": "System",
"WatsonBuckets": null
},
"HelpURL": null,
2
Answers
One more possible answer is your ip may be blocked by your corporate
Firewall
orZscalar
.This was our case which was not letting the SHIR to register.
We were constantly getting this error:
Solution is to get your url whitelisted by the network team:
To resolve the error above, enable public access in ADF as shown below:
If a self-hosted integration runtime is already created, regenerate the key. Use that key to register SHIR, and it will register and connect to ADF successfully as shown below:
If you want to connect to a private endpoint after enabling it in the factory, note down the IP address of the DNS configuration.
In the Azure VM, go to
C:WindowsSystem32driversetc
, and open the host file in Notepad. Add the line that maps the private IP to the FQDN at the end of the file, and save the change.For more information, you can refer to the MS Question.