gpt4 book ai didi

c# - 如何从一个客户端使用多个 WCF 服务

转载 作者:太空狗 更新时间:2023-10-29 23:11:58 25 4
gpt4 key购买 nike

我仍在学习整个 WCF,所以请多多包涵。

我有两个使用 C# 和 VS 2008 创建的自托管服务:
Service #1 将两个数字相加并返回结果。
服务 #2 返回数字的平方。

我希望客户端能够将两个数字发送到服务 1,获取总和,然后将总和发送到服务 2 并获取平方。

我为这两种服务生成了两个代理,我能够在它们上使用 Intellisense,所以这部分应该可以工作。

现在我该如何配置我的 app.config 文件,以便我可以与这两个服务进行通信?现在,每次我尝试这样做时都会出现异常。

[如果我在应用程序文件中一次只有一个配置并尝试只调用该服务器,客户端工作正常。]

我想这是一个非常菜鸟的问题,答案可能是“以 _____ 方式构建配置文件”,但 Google 似乎根本没有示例/指南。

有人知道怎么做吗?

备注:Consume multiple WCF services from one client客户虽然听起来像是重复的,但这不是我要找的。

编辑:感谢 marc_s,我让它工作了

由于这两个服务在不同的应用程序中运行,我不需要拆分服务器配置文件,但这是我对客户端配置文件所做的:首先使用 SvrUtil.exe 自动生成配置文件,然后合并它们这样:

<bindings>
<wsHttpBinding>

<binding>
...
</binding>

<binding>
...
</binding>

</wsHttpBinding>
</bindings>

...

  <endpoint>

...

最佳答案

如果您想在不同的端点/端口上运行这两个服务,请执行以下操作:

服务器端:

<service name="Service1">
<endpoint address="http://localhost:8001/service1.asmx"
binding="basicHttpBinding"
contract="IService1" />
</service>
<service name="Service2">
<endpoint address="http://localhost:8002/service2.asmx"
binding="basicHttpBinding"
contract="IService2" />
</service>

客户端:

<client>
<endpoint address="http://localhost:8001/service1.asmx"
binding="basicHttpBinding"
contract="IService1"
name="Service1" />
<endpoint address="http://localhost:8002/service2.asmx"
binding="basicHttpBinding"
contract="IService2"
name="Service2" />
</client>

这应该为您提供服务器上的两个独立的独立端点和一个将与两者通信的客户端。

马克

关于c# - 如何从一个客户端使用多个 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/686112/

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