在Microsoft Graph .Net SDK中重用GraphServiceClient的建议是什么?

Dog*_*lan 1 c# microsoft-graph microsoft-graph-sdks

我意识到Microsoft Graph .Net SDK正在使用HttpClient类.

https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph.Core/Requests/HttpProvider.cs
Run Code Online (Sandbox Code Playgroud)

Microsoft自己的文档建议HttpClient尽可能多地重用实例,而不是每个请求启动一个新实例,这可能会导致SocketException最终耗尽连接池.

是否有类似的建议,GraphServiceClient尽可能多地重用?实例化GraphServiceClient每个请求有什么特别的问题吗?

Pat*_*man 6

我不知道有任何建议,但如果你看看GraphServiceClient作为底层的代码BaseClient,就没有保持状态.只有传入或默认HttpProvider,并存在问题.如果您每次都依赖于GraphServiceClient生成新的HttpProvider(以及新的HttpClient),则会遇到与创建多个HttpClient实例相同的问题.

因此,如果您正在重新创建客户端,则至少应该为其提供缓存HttpProvider.然后,将整个客户端保留在缓存中并没有太大的损失.

  • 这救了我的命 :) 在我使用 HttpProvider 作为单例对象后,我的 api 性能提高了约 50%。 (2认同)