Элемент 'поведение' имеет недопустимый дочерний элемент 'transportClientEndpointBehavior' также basicHttpRelayBinding - PullRequest
3 голосов
/ 01 марта 2011

Я мог бы получить эту ошибку в Visual Studio при создании файла конфигурации WCF, так как редактор VS не знает об этом расширении. Мне нужно знать, где разместить transportClientEndpointBehavior, любая помощь? спасибо.

 <behaviors>
  <endpointBehaviors>
    <behavior name="sharedSecretClientCredentials">
      <transportClientEndpointBehavior credentialType="SharedSecret">
        <clientCredentials>
          <sharedSecret issuerName="***********" issuerSecret="**********" />
        </clientCredentials>
      </transportClientEndpointBehavior>
      <ServiceRegistrySettings discoveryMode="Public"/>
    </behavior>
  </endpointBehaviors>
  ...
</behaviors>

У меня также есть проблема с basicHttpRelayBinding, которую я предполагаю включить в привязки.

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

Установили ли вы AppFabric SDK ?ServiceRegistrySettings также должно быть serviceRegistrySettings.

0 голосов
/ 09 мая 2016

Visual Studio Intellisense использует встроенные схемы для выполнения проверок. Следовательно, это не будет распознает расширение поведения transportClientEndpointBehavior и отобразит предупреждение. Не обращайте внимания на это предупреждение.

Ответ от "20487B-ENU-TrainerHandbook.pdf", который является официальным учебником Microsoft. Страница 278

0 голосов
/ 02 марта 2011

В учебном комплекте по платформе Windows Azure есть пример, который делает это программно. Вот пример кода ...

// create the service URI based on the service namespace
        Uri address = ServiceBusEnvironment.CreateServiceUri("sb",
                      serviceNamespaceDomain, "EchoService");

        // create the credential object for the endpoint
        TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();
        sharedSecretServiceBusCredential.CredentialType = TransportClientCredentialType.SharedSecret;
        sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerName = issuerName;
        sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerSecret = issuerSecret;

        // create the service host reading the configuration
        ServiceHost host = new ServiceHost(typeof(EchoService), address);

        // create the ServiceRegistrySettings behavior for the endpoint
        IEndpointBehavior serviceRegistrySettings = new ServiceRegistrySettings(DiscoveryType.Public);

        // add the Service Bus credentials to all endpoints specified in configuration
        foreach (ServiceEndpoint endpoint in host.Description.Endpoints)
        {
            endpoint.Behaviors.Add(sharedSecretServiceBusCredential);
        }

        // open the service
        host.Open();
...