【发布时间】:2021-02-09 10:16:52
【问题描述】:
我在 .net core API 项目中使用 WCF 服务,我使用了以下步骤:
WCF服务中的绑定(测试用)<add binding="basicHttpsBinding" scheme="https" />
-
使用https://docs.microsoft.com/en-us/dotnet/core/additional-tools/dotnet-svcutil-guide?tabs=dotnetsvcutil2x 创建了一个代理类
(这创建了一个具有接口IService1并调用Service1Client的代理。 -
在启动类中我已经将接口与
services.AddSingleton<IService1, Service1Client>();类绑定了
WCF服务中的方法端点根据传递给WCF服务的参数从数据库中获取数据。
我不确定应该使用哪一个,services.AddSingleton 或 services.AddTransient,因为我不确定代理类使用什么来调用该方法。
如果我创建一个实例,它会被锁定吗?
我做了一个Jmeter test,数据库中有1000行,csv中有1000行作为参数来使用API,但没有找到任何锁,并且在3分钟内全部成功。
【问题讨论】:
-
@DingPeng 我不确定 WCF 客户端是否工作我知道它是线程安全的,所以单个实例足以处理所有请求。我不确定 DNS 兑现,如果 WCF 服务不可用(一秒钟),它会重试等。
-
services.AddSingleton<IService1, Service1Client>();为我工作了很久。并观察解决后服务端是否存在问题。它在没有回收池的情况下开始工作。
标签: wcf .net-core dependency-injection asp.net-core-webapi