Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа — после развертывания в azure

#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-адрес в вашем коде, пожалуйста