gpt4 book ai didi

c# - WCF HTTP 和 NamedPipe 服务

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:20 25 4
gpt4 key购买 nike

我正在创建一个 WCF 服务,该服务目前使用 basicHttpBinding 公开许多契约(Contract)。但是,我现在想在同一台机器上本地使用该服务,而 netNamedPipeBinding 在性能方面似乎更合适。出于这个原因,我想使用命名管道和 HTTP 公开服务。

目前我正在使用以下配置执行此操作:

<service name="WCFService.MyService" behaviorConfiguration="serviceBehaviour">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/MyService" />
<add baseAddress="net.pipe://localhost/MyService" />
</baseAddresses>
</host>

<endpoint address="calculator" binding="basicHttpBinding" contract="WCFService.ICalculatorService" />
<endpoint address="database" binding="basicHttpBinding" contract="WCFService.IDatabaseService" />
</service>

这似乎工作正常,但仔细检查端点仍在使用 basicHttpBinding。这行得通,但我的印象是它造成了不必要的开销。

我是否需要为每个契约(Contract)和每个绑定(bind)类型(即 basicHttpBinding 和 netNamedPipeBinding)创建一个端点,或者我这样做是完全错误的吗?

(如果不清楚,我是 WCF 新手!)

最佳答案

是的,您需要指定多个端点(每个绑定(bind) 1 个端点):

<endpoint address="calculator" binding="basicHttpBinding" contract="WCFService.ICalculatorService" />
<endpoint address="database" binding="basicHttpBinding" contract="WCFService.IDatabaseService" />

<endpoint address="calculator" binding="netNamedPipeBinding" contract="WCFService.ICalculatorService" />
<endpoint address="database" binding="netNamedPipeBinding" contract="WCFService.IDatabaseService" />

关于c# - WCF HTTP 和 NamedPipe 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com