WCF以编程方式设置端点地址:在配置元素集合中找不到与密钥匹配的元素

时间:2011-12-02 20:03:43

标签: wcf wcf-binding wcf-client

我正在执行我认为非常基本的任务。我们有一个具有多个服务器(DEV,TEST,PRODUCTION)的环境,我想以编程方式更改服务端点。为此,我创建了一个新的EndPointAddress并将客户端实例化为:

BasicHttpBinding binding = new BasicHttpBinding("BasicHttpBinding_IMyService");
EndpointAddress endpoint = new EndpointAddress(new Uri("http://domain.name/myservice.svc"));
MyService.MyServiceClient client = new MyService.MyServiceClient(binding, endpoint);

我收到以下错误。

No elements matching the key 'BasicHttpBinding_IMyService' were found in the configuration element collection.

我已经在下面包含了我的app.config,但正如您所看到的,我确实已经定义了绑定。

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IMyService" >
               <... removed directives for ease of reading ...>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://domain.name/MyService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
            contract="MyService.IMyService" name="BasicHttpBinding_IMyService" />
    </client>
</system.serviceModel>

如果这是一个简单的问题,我很抱歉,但我无法确定问题。我称之为'周五晚脑雾',也许你可以称之为'简单点'?

谢谢!

1 个答案:

答案 0 :(得分:2)

WCF应用程序的Web.config中的绑定和客户端应用程序的app.config必须匹配