Сколько ServiceContracts может иметь сервис WCF?

Я попробовал это в чистом JS, задаваясь вопросом, как вышеперечисленные плагины выполнили свою работу. Вот мой результат. Я предопределю это, сказав, что я понятия не имею, насколько стабильным это будет в IE и тому подобное. Это просто быстрый макет.

init();

function init() {
    var one = [0, 1, 2, 3];
    var two = [4, 5, 6, 7];
    var three = [8, 9, 10, 11, 12];
    var four = zip(one, two, one);
    //returns array
    //four = zip(one, two, three);
    //returns false since three.length !== two.length
    console.log(four);
}

function zip() {
    for (var i = 0; i < arguments.length; i++) {
        if (!arguments[i].length || !arguments.toString()) {
            return false;
        }
        if (i >= 1) {
            if (arguments[i].length !== arguments[i - 1].length) {
                return false;
            }
        }
    }
    var zipped = [];
    for (var j = 0; j < arguments[0].length; j++) {
        var toBeZipped = [];
        for (var k = 0; k < arguments.length; k++) {
            toBeZipped.push(arguments[k][j]);
        }
        zipped.push(toBeZipped);
    }
    return zipped;
}

Это не пуленепробиваемый, но это все еще интересно.

10
задан Peter Mortensen 25 January 2012 в 21:28
поделиться

4 ответа

Вы можете сделать, чтобы сервис реализовал все контракты на обслуживание, которые Вы хотите. Я имею в виду, я не знаю, существует ли предел, но я не думаю, что существует.

Это - аккуратный способ разделить операции, которые будут реализованы тем же сервисом в нескольких концептуально различных интерфейсах контракта на обслуживание.

1
ответ дан 3 December 2019 в 19:36
поделиться

Сервис может теоретически иметь любое количество Конечных точек, и каждая Конечная точка связывается с конкретным контрактом или интерфейсом, таким образом, для концептуального сингла (и настроенный) сервис возможно разместить несколько интерфейсов через несколько конечных точек или альтернативно для нескольких конечных точек для хостинга того же интерфейса.

При использовании класса ServiceHost для хостинга сервиса, тем не менее, вместо IIS, можно только связать единственный интерфейс на ServiceHost. Я не уверен, почему дело обстоит так, но это.

0
ответ дан 3 December 2019 в 19:36
поделиться

@jdiaz

Конечно, необходимо стремиться иметь совсем другие деловые вопросы в различных сервисах, но рассматривать случай, в котором Вы хотите это, например, все Ваши сервисы реализуют GetVersion () операция. Вы могли сделать, чтобы сервис заключил контракт только на ту операцию и сделал, чтобы каждый сервис реализовал его, вместо того, чтобы добавить GetVersion () операция к контракту на все Ваши услуги.

1
ответ дан 3 December 2019 в 19:36
поделиться

Сервисы WCF могут иметь несколько конечных точек, каждая из которых может реализовать различный контракт на обслуживание.

Например, Вам можно было объявить сервис следующим образом:

[ServiceBehavior(Namespace = "DemoService")]
public class DemoService : IDemoService, IDoNothingService

Который имел бы конфигурацию вдоль этих строк:

<service name="DemoService" behaviorConfiguration="Debugging">
  <host>
    <baseAddresses>
      <add baseAddress = "http://localhost/DemoService.svc" />
    </baseAddresses>
  </host>
  <endpoint 
    address =""
    binding="customBinding"
    bindingConfiguration="InsecureCustom"
    bindingNamespace="http://schemas.com/Demo" contract="IDemoService"/>
  <endpoint 
    address =""
    binding="customBinding"
    bindingConfiguration="InsecureCustom"
    bindingNamespace="http://schemas.com/Demo" contract="IDoNothingService"/>
</service>      

Надежда, которая помогает, но если Вы были после теоретических максимальных интерфейсов, которые Вы можете иметь для сервиса, я подозреваю, что это - некоторые безумно большие несколько из 2.

18
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: