使用 HttpClient 并发调用 API 时执行中途终止

问题描述 投票:0回答:2

我在使用 HttpClient 从同一服务器托管的另一个 Web 服务调用 Web 服务时遇到问题。

场景是,有一个 REST webService,假设“WebService1”接收来自多个客户端的创建 PDF 的请求。 WebService1进一步调用另一个Web服务“BackendWebService”来创建PDF文档。此后端 WebService 引用第三方库来创建 PDF。

现在的情况是,如果单个用户调用WebService1有10个请求,那么就没有问题。所有请求均已成功处理。 但如果有多个用户同时向WebService1发送请求,那么只有很少的记录被成功处理,部分记录被 终止于中间。看起来代码没有完全执行,应用程序没有完成整个过程就被终止了。

为什么会发生这种情况?请帮忙。我已经只创建了一个 HttpClient 的静态实例,但仍然没有运气。

WebService1 调用 BackendWebService 如下:

对于客户请求的每个 PDF 数量:

This is how WebService calls the BackendWebService

c# multithreading web-services concurrency dotnet-httpclient
2个回答
0
投票
终于知道这个问题的原因了。

多个进程将日志写入 txt 文件时,BackendWebService 中引用的库(名为 processhandler.dll 的自定义库)存在并发问题。当此引用的库中出现异常时,该进程将终止,IIS 或应用程序级别日志中也没有任何信息。


0
投票
您能否告诉我们您采取了哪些措施来解决此问题,因为我们也面临类似的问题,即在并发命中时我们看不到任何日志,事件查看器、IIS 日志和应用程序日志中也没有任何内容。 请让我们知道这个问题的解决方案。 谢谢 桑迪普

© www.soinside.com 2019 - 2024. All rights reserved.