У меня есть приложение 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 (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state, IAsyncResult + asyncResult + Exception &Result исключение)[WebException: невозможно подключиться к удаленному серверу]
System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) +606 System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ar) +64[HttpRequestException: произошла ошибка при отправке запроса.]
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задача) +58 System. Runtime.CompilerServices.TaskAwaiter1.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 task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) +58 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() +28 SIMSClient.Controllers.<Index>d__0.MoveNext() in C:\Users\Dload\documents\visual studio 2017\Projects\SMM\SMMClient\Controllers\HomeController.cs:19
1.CallEndDelegate (IAsyncResult as_Delegate) с. IAsyncResult asyncResult) +10
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97
System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17
System.Web.Mvc.Async.WrappedAsyncResult
System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49
1.CallEndDelegate (IAsyncResult asyncResult) +10
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult
System.Web.Mvc.Async.WrappedAsyncResultBase (asyncResultResultBase_Dy_ync. ncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +48
1.CallEndDelegate (IAsyncResult asyncResult) +22
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +38 System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
System.Web.Mvc.Async.WrappedAsyncVoid
System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +48
1.CallEndDelegate .Mvc.Async. ) +9
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +28
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid
System.Web.CallHandlerExecutionStep.InvokeEndHandler (IAsyncResult ar) +152 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion (IAsyncResult ar) +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.
Буду рад получить помощь.
https://api.mydomain.com/api/superadmin/settings
это рабочий URL? Как вы его запускаете? Хост в IIS или отладка из VS? - person Roman Marusyk   schedule 10.04.2019