如何从一个客户端使用多个WCF服务
我还在学习整个WCF的事情,所以请在这里忍受我。
我所拥有的是使用C#和VS 2008创建的两个自托管服务:
服务#1添加两个数字并返回结果。
服务#2返回数字的平方。
我希望客户能够向服务1发送两个号码,得到总和,然后将总和发送到服务2并获得正方形。
我为这两个服务都有两个生成的代理,我可以在它们上使用Intellisense,因此该部分可以正常工作。
现在我如何配置我的app.config文件,以便我可以与这两个服务进行通信? 现在,每当我尝试这样做时,我都会得到一个例外。
[如果我一次只在app文件中有一个配置,客户端工作正常,并尝试只调用该服务器。]
我想这是一个非常无趣的问题,答案可能是“以_____方式构建配置文件”,但Google似乎没有示例/指南。
有人知道怎么做吗?
注意: 从一个客户端客户端使用多个WCF服务虽然听起来像重复不是我想要的。
编辑:感谢marc_s,我得到了它的工作
由于两个服务都运行在不同的应用程序中,我不需要拆分服务器配置文件,但这是我对客户端配置文件所做的:首先使用SvrUtil.exe自动生成配置文件,然后以这种方式合并它们:
... ...
…
…
如果要在不同的端点/端口上运行这两个服务,请执行以下操作:
服务器端:
客户端:
这应该为您提供服务器上的两个独立的单独端点以及将与两者进行通信的客户端。
渣
我意识到你已经要求App.Config的答案,但想想这可能会有所帮助。 我通常首先以编程方式首先配置客户端连接,因为它更简单,一旦你有了工作,你可以将它移动到你的App.Config。
以下是如何配置WCF客户端的示例。
BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress(serverURL); MyServiceClient myServiceProxy = new MyServiceClient(binding, address);
然后,您可以在App.Config中使用以下内容。
你刚刚发生了端点冲突吗? 例如,确保两个服务都未配置为侦听相同的端口号。 如果您可以发布您的配置文件(或其清理版本),这将有所帮助。