. NET Core Azure Web App Была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа. - PullRequest
0 голосов
/ 06 января 2020

У меня есть решение для нескольких проектов, которое прекрасно работает в «Начать без отладки» локально.

После публикации. NET Базовое решение для нескольких проектов для Azure Web App - самая первая установка клиента http падает и выдает следующую ошибку -

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

Вызов одного из веб-API в решении

httpClient = new HttpClient
            {
                BaseAddress = new Uri("https://localhost:44311/api/")
            };

Делает ошибку.

Полный стек ниже -

> AggregateException: One or more errors occurred. (An attempt was made to access a socket in a way forbidden by its access permissions)
System.Threading.Tasks.Task<TResult>.GetResultCore(bool waitCompletionNotification)
System.Threading.Tasks.Task<TResult>.get_Result()
StoreFrontWeb.Controllers.HomeController.Index() in HomeController.cs
Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor+TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)
System.Threading.Tasks.ValueTask<TResult>.get_Result()
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Действительно цените любые советы?

1 Ответ

0 голосов
/ 06 января 2020

@ Юунас прав. От официального do c:

Единственный способ получить доступ к приложению через inte rnet - через уже выставленные порты HTTP (80) и HTTPS (443) TCP; приложения могут не прослушивать на других портах пакеты, поступающие из inte rnet. Однако приложения могут создать сокет, который может прослушивать соединения из песочницы. Например, два процесса в одном приложении могут взаимодействовать друг с другом через сокеты TCP; Попытки подключения, поступающие извне «песочницы», хотя они и находятся на одной машине, не будут выполнены. См. Следующую топи c для дополнительной информации.

https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...