2009-10-03 3 views
0

Может ли кто-нибудь сказать мне, какие действия поэтапно выполняются, когда клиенты WCF подключаются к службе WCF и вызывают операцию?WCF - связь между клиентом и сервером

Plz описывает шаги с номером шага и поддерживает серийный номер.

В качестве альтернативы, plz предоставит мне ссылку на веб-сайт, описывающий эти шаги.

+0

Можете ли вы описать процедуры контрактов и вызывать операции в этом шаге. То есть описание с точки зрения кодирования. – anonymous

ответ

1

Заканчивать

Я не совсем уверен, что вы ищете, или что это такое, что вы больше всего интересует - может вы возможно уточнить?

Необходимо учитывать две части: клиент и сервер.

Сервер - это класс, предоставляющий методы, и его нужно размещать где-то - в IIS или в собственном приложении. В сценарии собственного хостинга вы создаете ServiceHost, который содержит один класс обслуживания. В службе определены 1-го конечные точки, и они «открыты» и прослушивают входящие запросы.

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

Одно свойство на ServiceContract является InstanceContextMode, который может быть:

  • PerCall: для каждого входящего запроса новый экземпляр класса службы создается и обрабатывает вызов и затем завершается; это, как правило, рекомендуется установка
  • PerSession: клиент устанавливает сеанс связи с обслуживанием и экземпляра службы будет придерживаться вокруг до тех пор, пока клиент не будет сделано, и это указывает, или пока бездеятельности не ауты удар в
  • Single: есть только когда-либо экземпляр одного экземпляра службы, который обрабатывает все запросы (singleton). Если singleton является однопоточным, это означает, что запросы сериализуются и обрабатываются один за другим. Чтобы одновременно обслуживать несколько запросов, однотонный должен быть многопоточным, и все внутренние переменные и т. Д. Должны быть защищены от одновременного доступа (все становится намного сложнее и беспорядочно с множественным одновременным доступом)

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

Клиент также должен знать (по конфигурации или в коде), куда обращаться к службе.

Что клиент в основном делает (и сервер в основном делает его назад) эти шаги:

  • взять в один или несколько параметров (INT, строка, ваши собственные типы)
  • это будет сериализировать эти параметры в сообщение
  • , как правило, он будет шифровать и подписывать сообщение (по желанию)
  • он будет затем передавать это сообщение на сервер по проводам

Есть еще несколько дополнительных шагов: клиент может добавлять заголовки в сообщение, он может делать с ним другие вещи - но это самые важные шаги.

На сервере после того, как сообщение получено, эти шаги случаются:

  • сообщение получено на конечную точку
  • сообщение проверяется, расшифрованной и т.д.
  • сообщения десериализируются в параметры и объекты
  • диспетчер вычисляет (на основе информации о сообщении, как действие SOP), какой объект и какой метод вызывать
  • этот метод затем вызывается, а параметр сообщения eters принимаются в

После того, как сообщение обработано на сервере, сервер теперь создает ответное сообщение и в основном отправляет его таким же образом (сериализация, шифрование и т. д.), и клиент получает его и интерпретирует Это.

Marc

+0

Можно ли описать соглашения о контрактах и ​​вызывать операции на этом этапе. То есть описание с точки зрения кодирования. – anonymous

Смежные вопросы