WCF не находит конфигурацию клиента - PullRequest
0 голосов
/ 19 мая 2010

У меня есть служба WCF на сервере B. Затем на машине 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 голосов
/ 19 мая 2010

Что ж, оказывается, это был вопрос только тега ConfigurationName в моем прокси-классе ... Извините :-) У него не было правильного пространства имен для моего контракта.Полное имя должно совпадать с именем в app.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...