WCF找不到客户端配置

时间:2010-05-19 13:07:33

标签: wcf configuration

我在服务器B上有一个WCF服务。然后在机器A上是客户端,这是一个Windows服务。在一个单独的dll中,代表了该服务的所有业务逻辑。所以我的WCF代理就在那边。我有2个app.config(仅限客户端):1表示服务,另一个表示dll。所以我尝试(出于测试目的)将servicemodel配置部分放在两者中。两者仍然,它不起作用,它说它找不到具有该名称和该合同的终点......

我在这里尝试做的是以编程方式修改配置。这是'业务层dll中的代码:

Dim ep As New EndpointAddress(New Uri(ConfigurationManager.AppSettings(nomServeurCible)), _
                                    EndpointIdentity.CreateDnsIdentity(ConfigurationManager.AppSettings("Identity_" & nomServeurCible)))

    serviceCible = New ServiceProxy.ExecOperClient("wsHttp", ep)

以下是配置文件的示例:

<add key="TEST1" value="http://TEST1:8000/MySpacePerso/ExecOperService"/>
<add key="TEST1_CertificateSerialNumber" value="10 hj 6y 7b 00 01 32 12 01 21"/>
<add key="Identity_TEST1" value="TEST1"/>

<system.serviceModel>
<client>
  <endpoint address="http://SERV_NAME:8000/CSSTQDA/ExecOperService" binding="wsHttpBinding"
            behaviorConfiguration="myClientBehavior"
            bindingConfiguration="MybindingCon" contract="ExecOper.Service.IExecOper" 
            name="wsHttp">
    <identity>
      <dns value="SERV_CERT_NAME"/>
    </identity>
  </endpoint>
</client>
<bindings>
  <wsHttpBinding>
    <binding name="MybindingCon">
      <security mode="Message">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceTraitementBehavior">
      <serviceMetadata httpGetEnabled="True"/>
      <serviceDebug includeExceptionDetailInFaults="True" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="myClientBehavior">
      <clientCredentials>
        <serviceCertificate>
          <authentication certificateValidationMode="ChainTrust" revocationMode="NoCheck"/>
        </serviceCertificate>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>

1 个答案:

答案 0 :(得分:0)

好吧,事实证明这只是我的代理类中的ConfigurationName标签问题...抱歉:-)它没有合同的正确名称空间。完全限定名称必须与app.config中的名称匹配。