HttpIOException: Die Antwort wurde vorzeitig beendetC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 HttpIOException: Die Antwort wurde vorzeitig beendet

Post by Anonymous »

Wir haben unsere .NET Framework-Anwendung auf .NET Core 8.0 migriert. Unser System, das einwandfrei mit HttpWebRequest von .NET Framework funktionierte, erhält beim Wechsel von .NET Core zum HttpClient einen Fehler, wie in der folgenden Ablaufverfolgung gezeigt.
Client: Windows Server – .NET Core 8.0
Server: Linux Java

Code: Select all

An error occurred while sending the request.

System.Net.Http.HttpRequestException: An error occurred while sending the request.

System.Net.Http.HttpIOException: The response ended prematurely. (ResponseEnded)

at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace ---
at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.AuthenticationHelper.SendWithNtAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean isProxyAuth, HttpConnection connection, HttpConnectionPool connectionPool, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
Code:

Code: Select all

using(var serviceScope = SiriusServiceScopeFactory.Instance.CreateScope()) {
var client = serviceScope.GetHttpClient(HttpClientConstants.CoreHttpClient);
using(var httpRequest = new HttpRequestMessage(HttpMethod.Post, requestUri)) {
SetHttpHeaders(httpRequest);

byte[] zippedBytes;
using(var ms = new MemoryStream()) {
CoreGZipUtils.Zip(ms, request);
zippedBytes = ms.ToArray();
}

HttpContent content = new ByteArrayContent(zippedBytes);
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

httpRequest.Content = content;
using(var cts = new CancellationTokenSource(timeout)) {
HttpResponseMessage response = null;
try {
response = await client.SendAsync(httpRequest, cts.Token).ConfigureAwait(false);
} catch (TaskCanceledException ex) {
throw new SrSystemException(string.Empty, string.Format("Timeout exception occured while connecting to plm. PLM Uri:{0}, Service Name:{1}, Timeout:{2} second", this.plmUri, this.corePlmClientHeaderInfo.ServiceName, timeout));
}
return await ReadHttpResponseFromMessageAsync < TResponse > (response).ConfigureAwait(false);
}
}
}

internal static IServiceCollection AddCoreHttpClient(this IServiceCollection services) {
services.AddHttpClient(HttpClientConstants.CoreHttpClient).ConfigurePrimaryHttpMessageHandler(x =>
new HttpClientHandler {
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
UseCookies = false,
AllowAutoRedirect = false,
UseDefaultCredentials = true,
});

return services;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post