Как исправить Невозможно установить соединение, потому что целевая машина активно отказалась от него 127.0.0.1:64527 - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть приложение MVC, которое зависит от приложения веб-API, я разместил их в среде общего хостинга. API на поддомене и MVC на основном домене. API - это api.mydomain.com, а MVC - mydomain.com, API работает нормально в любое время, когда я пробую его на почтальоне или браузере, но MVC не может подключиться к нему со следующей ошибкой.

Невозможно установить соединение, поскольку целевой компьютер активно отказался 127.0.0.1:64527 Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. пожалуйста просмотрите трассировку стека для получения дополнительной информации об ошибке и где это произошло в коде.

Сведения об исключении: System.Net.Sockets.SocketException: Нет подключения можно было сделать, потому что целевая машина активно отказывалась это 127.0.0.1:64527

Ошибка источника:

Во время выполнения текущий веб-запрос. Информация о происхождении и местонахождении исключение можно определить с помощью трассировки стека исключений ниже.

Трассировка стека:

[SocketException (0x274d): не может быть установлено соединение, потому что целевая машина активно отказалась от нее127.0.0.1: 64527]
System.Net.Sockets.Socket.InternalEndConnect (IAsyncResult asyncResult) + 6995036
System.Net.Sockets.Socket.EndConnect (IAsyncResult asyncResult) + 84
System.Net.ServicePoint.ConnectSocketInternal (логическое connectFailure, Сокет s4, Сокет s6, Сокет и сокет, IP-адрес и адрес, Состояние ConnectSocketState, IAsyncResult asyncResult, Исключение & исключение) + 256

[WebException: невозможно подключиться к удаленному серверу]
System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) +606 System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ар) + 64

[HttpRequestException: при отправке запроса произошла ошибка.]
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) +58 System.Runtime.CompilerServices.TaskAwaiter 1.GetResult() +28 SMMClient.<Setting>d__119 1.MoveNext () в C: \ Users \ Dload \ documents \ visual studio 2017 \ Projects \ SMM \ SMMClient \ Proc.cs: 1369
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) +58 System.Runtime.CompilerServices.TaskAwaiter 1.GetResult() +28 SIMSClient.Controllers.<Index>d__0.MoveNext() in C:\Users\Dload\documents\visual studio 2017\Projects\SMM\SMMClient\Controllers\HomeController.cs:19<br> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99<br> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58<br> System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97<br> System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17<br> System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndDelegate (IAsyncResult asyncResult) + 10
System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +49<br> System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +34<br> System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228 System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10<br> System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndDelegate (IAsyncResult asyncResult) + 10
System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +49<br> System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34<br> System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100<br> System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndDelegate (IAsyncResult asyncResult) + 10
System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +48<br> System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27<br> System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13<br> System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate (IAsyncResult asyncResult) + 29
System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +48<br> System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +38 System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12<br> System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate (IAsyncResult asyncResult) + 22 * ​​1036 * System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +48<br> System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +28<br> System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10<br> System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21<br> System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate (IAsyncResult asyncResult) + 29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End () + 48
System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (IAsyncResult результат) + 9
System.Web.CallHandlerExecutionStep.InvokeEndHandler (ar IAsyncResult ar) +152 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion (IAsyncResult ар) + 125

Вот как я подключаюсь к API из Global.asax.cs

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        Proc.Configure("https://api.mydomain.com/");
    }
}

Вот как я называю ресурс

public static class Proc
{
    private static HttpClient _client;
    public static void Configure(string Baseurl)
    {
        _client = new HttpClient();
        _client.BaseAddress = new Uri(Baseurl);

        _client.DefaultRequestHeaders.Clear();
        //Define request data format  
        _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    }

    public static async Task<T> Settings<T>()
    {
        if (!string.IsNullOrWhiteSpace(Account.AccessToken))
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Account.AccessToken);

        var resp = await _client.GetAsync($"api/superadmin/settings");

        var txt = await resp.Content.ReadAsStringAsync();

        return JsonConvert.DeserializeObject<T>(txt);
    }
}

Я могу подключиться к действующему API из локального приложения MVC, но не могу подключиться к API из действующего приложения MVC.

Я буду рад получить помощь.

1 Ответ

0 голосов
/ 11 апреля 2019

Эта ошибка возникает, когда брандмауэр, блокирующий соединение или процесс, на котором размещена служба, не прослушивает этот порт. Ссылки по этим ссылкам:

http://forums.asp.net/t/1223846.aspx/1[^]

/2058178/nevozmozhno-ustanovit-soedinenie-potomu-chto-tselevaya-mashina-aktivno-otkazalas-ot-nego[^]

https://www.codeproject.com/Questions/426966/System-Net-Sockets-SocketExcep

...