从另一个 WCF 服务调用一个 WCF 服务:端点错误?

问题描述 投票:0回答:2

我有一个 WCF 服务 Service1,它具有对另一个 WCF 服务 Service2 的服务引用。

这两项服务都是自托管的,在不互相引用的情况下也可以正常访问。

在 Service1 的方法内我调用了另一个服务

public String DoWork()
{
    using(Service2Client client = new Service2Client())
    {
         return client.DoWork();
    }
}

包含此代码的方法是从引用 Service1 的另一个项目调用的,如下所示:

using (Service1Client client = new Service1Client())
{
     result = client.DoWork();
}

当该项目尝试使用该服务时,我收到一条错误消息:

System.ServiceModel.FaultException`1:'在 ServiceModel 客户端配置部分中找不到引用协定“Service2Reference.IService2”的默认端点元素。这可能是因为没有找到适用于您的应用程序的配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。'

关于如何解决这个问题有什么想法吗?我对 WCF 相当缺乏经验。

我已阅读有关添加端点的信息,但我不完全确定将其添加到哪个配置文件(例如进行调用的客户端或调用另一个服务的服务的主机)?

谢谢

c# visual-studio web-services wcf
2个回答
2
投票

将客户端标签添加到 Service1 App.Config 文件。添加到 Service1 App.Config 文件的客户端端点应与在 Service2 的 App.Config 文件中设置的公开端点匹配。服务一中的客户端标签如下所示:

    <system.serviceModel>
        ....Other Config....
        <client>
            <endpoint address="serviceAddress" binding="bindingType"
             bindingConfiguration="BindingConfig" contract="ContractNamespace"
             name="NameOfEndpoint">
        </client>
     </system.serviceModel>

绑定类型需要与托管服务(示例中的服务 2)公开的绑定类型相匹配。契约是描述服务公开的方法的接口。


0
投票

我也有同样的问题。客户端标签到底应该添加到服务app.config中的哪里?

© www.soinside.com 2019 - 2024. All rights reserved.