Код: Выделить всё
try
{
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
Console.WriteLine($"Started");
HttpClient cl = new HttpClient();
cl.DefaultRequestHeaders.Add("Connection", "keep-alive");
var response = cl.GetStringAsync("https://google.com").Result;
Console.WriteLine(response);
// ParsersV2();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.Read();
Запущено
System.AggregateException: произошла одна или несколько ошибок. (Произошла ошибка при отправке запроса.)
---> System.Net.Http.HttpRequestException: произошла ошибка при отправке запроса.
---> System.IO.IOException: невозможно выполнить записать данные в транспортное соединение: существующее соединение было принудительно закрыто удаленным хостом..
---> System.Net.Sockets.SocketException (10054): существующее соединение было принудительно закрыто удаленным хостом.
в System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(ошибка SocketError, Boolean forAsyncThrow)
в System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsyncForNetworkStream(Socketocket, CancellationToken cancelToken )
в System.Net.Sockets.Socket.SendAsyncForNetworkStream(ReadOnlyMemory
Код: Выделить всё
1 buffer, SocketFlags socketFlags, CancellationToken cancellationToken) at System.Net.Sockets.NetworkStream.WriteAsync(ReadOnlyMemory< /code> 1 буфер, CancellationToken CancellationToken)
at system.net.http.httpconnection.writetoStreamasync (readonlymemory1 source, Boolean async) at System.Net.Http.HttpConnection.FlushAsync(Boolean async) at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Код: Выделить всё
1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Код: Выделить всё
1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Код: Выделить всё
1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task< /code> 1.trysetresult (результат Tresult)
at system.runtime.compilerservices.asynctaskmethodbuilder1.SetExistingTaskResult(Task< /code> 1 задача, результат Tresult)
at system.threading.tasks.taskcompletionionsourcewithcancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Код: Выделить всё
1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Код: Выделить всё
1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder< /code> 1.AsyncStateMachinebox`1.executeFromThReadPool (ThreadPoolThread)
at System.Threading.Threadpoolworkeaue.dispatch ()
at System.Threading.portableThreadpool.workerThread.workerThreadStart ()
- -Конец трассировки стека из предыдущего местоположения --- < /p>
--- Конец внутреннего стека исключений трассировки --- at
System.net.http.httpconnection.sendasync ( Httprequestmessage,
boolean async, decellationtoken cancellationtoken) --- конец
inner stack stack исключения --- at
system.net.http.httpconnection.sendasync(httprequestmessage,
Boolean Async, CancellationToken CancellationTokenekeoken) AT
SYSTEM.NET.HTTP.HTTPCONNECTIONPOOL.SENDWITHVERSHIONDETECTECTIONANDRYASYNC(HTTPREQUESTMESSAGE PERSCE, BOOLEAN ASYNC, BOOLEAN DOREQUESTAUTHAUTH, CANCELLATIONTOKENTOKENTOKENTAKENTARTATIONTTRATIONTTARTATERTATERTATERTATE .Http.httpconnectionpool.estableishproxytunnelasync (boolean
async, cancellationtoken cancellationtoken) на
запрос, логический асинхро Br /> System.Threading.tasks.taskCompletionionsourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task
waitCompletionNotification) в CS10.Program.Main(String[] args) в
F:\user\source\repos\Csharp\CS10\Program.cs:line 35
У меня такая проблема только на прод сервере с Windows Server 2019. На тестовый сервер с Windows Server 2019 в той же сети.
Я пробовал использовать ServicePointManager.SecurityProtocol, ServicePointManager.ServerCertificateValidationCallback, и ничего не получилось.
В Google Chrome или Power Shell, я могу получить ответ от google.com, только мое консольное приложение не работает.
Я использую .net 8.
Возможно, кто-нибудь сможет мне помочь. Я понятия не имею, что нужно искать еще. Я протестировал этот код еще на 4 серверах с Windows 2008, Ubuntu, и он работает, но работает не только на prod.
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-existing