这是一个直截了当的问题,但目前我还没有答案. 我正在try 从一个基本的控制台应用程序向我的API发出请求,该请求需要30秒以上的时间才能完成.有趣的是,当我在Windows环境中执行应用程序时,一切工作正常.然而,当我使用Docker Desktop在容器中运行它时,POST请求始终在30秒后停止.我怀疑我的Docker设置中可能存在超时配置问题.即使在OpenShift中部署应用程序时,此行为也会持续存在.如有任何见解或建议,我们将不胜感激.

以下是代码:

var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, {URL});

var content = new StringContent({requestBody}, null, "application/json");
request.Content = content;

var response = await client.SendAsync(request); // it crashes here 

HttpRequestException:

{System.Net.Http.HttpRequestException: An error occurred while sending the request.
System.IO.IOException: The response ended prematurely.
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
End of inner exception stack trace ---
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, 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.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at RestSharp.RestClient.ExecuteRequestAsync(RestRequest request, CancellationToken cancellationToken)}

我try 更改一些坞站设置以增加超时,并确保这不是代理问题:-)

推荐答案

这个问题与我的代理有关,它阻止了响应.通过将我的API URL添加到Dockerfile中的环境变量,我绕过了代理,问题得到了解决. ENV no_proxy="{api.domain.name}"...您可以使用前导点和设置子域.尽管搜索过程很复杂,但一旦确定,解决方案就很简单.

Csharp相关问答推荐

[0-n]范围内有多少个Integer在其小数表示中至少包含一个9?

C# Json重新初始化动态类型

C#类主构造函数中的调试参数

一小时后,自定义缓存停止在App Insight中保存

==和Tuple对象的相等<>

如何在不考虑年份的情况下判断日期时间是否在某个日期范围内?

在.NET核心项目中创建Startup.cs比在Program.cs中注册服务好吗?

异步实体框架核心查询引发InvalidOperation异常

带有列表参数的表达式树

关于扩展文件类C#的矛盾

在C#中,是否有与变量DISARD对应的C++类似功能?

为什么Azure函数(独立工作进程)索引失败?使用Azure App配置的CosmosDbTrigger绑定失败,未解析为值

在C#ASP.NET内核中使用INT AS-1进行控制器场景的单元测试

WPF:如何从DatagridHeader的内容模板绑定到词典项

将两个for循环更改为一条LINQ语句

如何更改Datagridview行标题

如何在.NET8中使用Blazor Web App(WebAssembly)托管服务器端控制器?

如何在JSON:API中定义的&过滤查询参数系列&标准的GET请求中传递多个相关参数?

这是T自身的布尔表达式是什么意思?

Avalonia MVVM数据模板