#c# #.net #azure #sockets #automationanywhere
#c# #.net #azure #сокеты #automationanywhere
Вопрос:
На порту «81» у меня есть диспетчерская automation anywhere, и я хочу выполнить вызов api для получения токена аутентификации.Я попробовал приведенный ниже код локально, он работает нормально, но при развертывании в службе приложений Azure появляется ошибка
using (HttpClient httpClient = new HttpClient())
{
var authenticateClient = new RestClient("ipaddress:81/v1/authentication");
var authenticateRequest = new RestRequest(Method.POST);
authenticateRequest.AddHeader("Content-Type", AAConstant.fileFormat);
authenticateRequest.Parameters.Clear();
authenticateRequest.AddJsonBody(new
{
username = "******",
password = "*******"
});
IRestResponse authenticateResponse = authenticateClient.Execute(authenticateRequest);
Отслеживание стека :
System.Net.WebException: An attempt was made to access a socket in a way forbidden by its access permissions An attempt was made to access a socket in a way forbidden by its access permissions ---> System.Net.Http.HttpRequestException: An attempt was made to access a socket in a way forbidden by its access permissions ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Threading.Tasks.ValueTask`1.get_Result()
at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Threading.Tasks.ValueTask`1.get_Result()
at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask`1 creationTask)
at System.Threading.Tasks.ValueTask`1.get_Result()
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at System.Net.HttpWebRequest.SendRequest()
at System.Net.HttpWebRequest.GetResponse()
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at RestSharp.Http.GetRawResponse(HttpWebRequest request)
at RestSharp.Http.GetResponse(HttpWebRequest request)
Изменен план обслуживания приложений Azure, а также отключен антивирус, брандмауэр, но не работает.
Любая помощь!!
Комментарии:
1. Я не думаю, что вам разрешено использовать порты, отличные от 80 и 8080?
2. @4c вы утверждаете, что приложение службы приложений Azure не может подключиться к любому порту, кроме 80 и 8080? Кажется маловероятным (и я знаю, что у меня есть вещи в Azure, которые используют другие порты, такие как RMQ, хотя все они выше 1024 .. возможно, какой-то низкий запрет на порты?)
3. @Nandini где запускается эта служба на порту 81? Если он запущен на локальном / интрасетевом узле, вы случайно развернули строку IP-адреса только для внутреннего доступа?
4. @CaiusJard я тебя не понял
5. Вы сказали:
new RestClient("ipaddress:81/v1/authentication");
— «ipaddress» не является IP-адресом. Сообщите нам реальный IP-адрес в вашем коде, пожалуйста