Требуется разъяснение WCF по операциям клиент / сервер - PullRequest
0 голосов
/ 08 марта 2011

Мне нужно приложение сервера C # NET и приложение клиента C # NET.Используя веб-интерфейс ASP для сервера, я должен быть в состоянии указать конкретному клиентскому приложению выполнять такие функции, как DownloadFile (строка URL), CreateWindowsService () и т. Д.

Буду ли я делать что-то вродеследуя на сервер и выставляя их клиентским приложениям?

[ServiceContract]
public interface IFunctions
{
  [OperationContract]
  void DownloadFile(string url);
  void CreateWindowsService();
  void OtherFunctions();
}

Из того, что я прочитал, звучит так, будто я определяю / кодирую функции на сервере, затем клиентские приложения фактически запускают функции, как если бы они были закодированы в них?

Вкл.Еще одно примечание, после прочтения описаний привязок, похоже, что я должен использовать Tcp для этого проекта?Каждое клиентское приложение будет находиться на отдельной машине.

1 Ответ

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

Нет, операции выполняются на сервере, результат операции (если не аннулирован) отправляется клиенту в сериализованном формате.

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

...