在 Microsoft Graph .Net SDK 中重用 GraphServiceClient 的建议是什么?
What is the recommendation to reuse GraphServiceClient in Microsoft Graph .Net SDK?
我意识到 Microsoft Graph .Net SDK 正在使用 HttpClient
class。
https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph.Core/Requests/HttpProvider.cs
Microsoft 自己的文档建议尽可能重用 HttpClient
个实例,而不是每个请求都启动一个新实例,这可能最终会导致连接池和 SocketException
耗尽。
是否有类似的建议,尽可能重复使用 GraphServiceClient
?每个请求实例化一个新的 GraphServiceClient
是否有任何特别的问题?
我不知道有任何建议,但是如果您查看 GraphServiceClient
作为基础 BaseClient
的代码,则不会保留任何状态。只有传入或默认HttpProvider
,才有问题。如果您每次都依赖于 GraphServiceClient
生成一个新的 HttpProvider
(并因此生成一个新的 HttpClient
),那么您会遇到与创建多个 HttpClient
实例相同的问题。
因此,如果您要重新创建客户端,您至少应为其提供缓存 HttpProvider
。然后,将整个客户端保存在缓存中也没什么坏处。
我意识到 Microsoft Graph .Net SDK 正在使用 HttpClient
class。
https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph.Core/Requests/HttpProvider.cs
Microsoft 自己的文档建议尽可能重用 HttpClient
个实例,而不是每个请求都启动一个新实例,这可能最终会导致连接池和 SocketException
耗尽。
是否有类似的建议,尽可能重复使用 GraphServiceClient
?每个请求实例化一个新的 GraphServiceClient
是否有任何特别的问题?
我不知道有任何建议,但是如果您查看 GraphServiceClient
作为基础 BaseClient
的代码,则不会保留任何状态。只有传入或默认HttpProvider
,才有问题。如果您每次都依赖于 GraphServiceClient
生成一个新的 HttpProvider
(并因此生成一个新的 HttpClient
),那么您会遇到与创建多个 HttpClient
实例相同的问题。
因此,如果您要重新创建客户端,您至少应为其提供缓存 HttpProvider
。然后,将整个客户端保存在缓存中也没什么坏处。