如何解决DNN / 2SXC / Razor / c#/使用可重用HttpClient的外部API
我正在使用Razor模板在2SXC中为DNN构建应用程序。我需要从几个外部API中提取一些数据,但是我担心在不同页面上使用许多HttpClient请求会导致套接字耗尽。
我已经研究过使用依赖注入和使用IHttpClientFactory创建类型化客户端,但是DNN中的当前实现似乎不支持此功能。
有人对如何使用线程安全的剃刀模块创建和重用HttpClient对象有任何建议吗?
感谢您提供的任何指导!
解决方法
仅是我的2c,但是您所指的文章是针对.net core的,旨在用于非常高负载的环境。因此,我几乎可以确定您的DNN端点可能没有这个。
无论哪种方式:从进一步的研究来看,
- 提到的Socket-Exhaustion是您的程序在其自己的系统上使用套接字(因此不是远程api,套接字会在短时间内被阻塞)
- 您可以轻松地使用一个单例-在所有场景中有99%都可以(创建一个
static
变量。我读到的唯一不足是它可以缓存DNS,但是如果您的远程端点不那么重要了始终是同一台服务器,并且有类似http://byterot.blogspot.com/2016/07/singleton-httpclient-dns.html 的解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。