Поделиться через


Пошаговое руководство. Создание служб WCF и доступ к таким службам

В этом пошаговом руководстве демонстрируется способ создания простой службы Windows Communication Foundation (WCF), ее тестирования и последующего доступа к ней из приложения Windows Forms.

ПримечаниеПримечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание службы

Для создания службы WCF

  1. В меню Файл выберите пункт Создать, а затем команду Проект.

  2. В диалоговом окне Новый проект разверните узел Visual Basic или Visual C#, выберите пункт WCF, затем Библиотека службы WCF.Нажмите кнопку ОК для открытия проекта.

    ПримечаниеПримечание

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

  3. В обозревателе решений дважды щелкните файл IService1.vb или IService1.cs и найдите следующую строку:

    <OperationContract()>
    Function GetData(ByVal value As Integer) As String
    
    [OperationContract]
    string GetData(int value);
    

    Измените тип параметра value на String:

    <OperationContract()>
    Function GetData(ByVal value As String) As String
    
    [OperationContract]
    string GetData(string value);
    

    Обратите внимание на атрибуты <OperationContract()> и [OperationContract] в приведенном выше коде.Эти атрибуты обязательны для любого метода, предоставляемого службой.

  4. В обозревателе решений дважды щелкните файл Service1.vb или Service1.cs и найдите следующую строку:

    Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData
        Return String.Format("You entered: {0}", value)
    End Function
    
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
    

    Измените тип параметра значения на String:

    Public Function GetData(ByVal value As String) As String Implements IService1.GetData
        Return String.Format("You entered: {0}", value)
    End Function
    
    public string GetData(string value)
    {
        return string.Format("You entered: {0}", value);
    }
    

Тестирование службы

Для тестирования службы WCF

  1. Чтобы запустить службу, нажмите клавишу F5.Форма Клиент теста WCF появится на экране и загрузит службу.

  2. В форме Клиент теста WCF дважды щелкните метод GetData() под узлом IService1.Появится вкладка GetData.

  3. В области Запрос выберите поле Значение и введите Hello.

  4. Нажмите кнопку Вызов.Если появится диалоговое окно Предупреждение системы безопасности, нажмите кнопку Да.Результат будет выведен в области Ответ.

  5. Чтобы закрыть эту тестовую форму, в меню Файл щелкните Выход.

Доступ к службе

Для ссылки на службу WCF

  1. В меню Файл последовательно выберите пункты Добавить и Новый проект.

  2. В диалоговом окне Новый проект разверните узел Visual Basic или Visual C#, выберите пункт Windows и выберите элемент Приложение Windows Forms.Нажмите кнопку ОК для открытия проекта.

  3. Щелкните правой кнопкой мыши WindowsApplication1 и выберите Добавить ссылку на службу.Появится диалоговое окно Добавить ссылку на службу.

  4. В диалоговом окне Добавить ссылку на службу выберите Найти.

    В области Службы появится Служба1.

  5. Нажмите кнопку ОК, чтобы добавить эту ссылку на службу.

Чтобы построить клиентское приложение

  1. Если конструктор Windows Forms еще не открыт, дважды щелкните файл Form1.vb или Form1.cs в обозревателе решений, чтобы открыть его.

  2. Из Панели элементов перетащите в форму элементы управления TextBox, Label и Button.

  3. Дважды щелкните Button и добавьте в обработчик событий Click следующий код:

      Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
          Dim client As New ServiceReference1.Service1Client
          Dim returnString As String
    
          returnString = client.GetData(TextBox1.Text)
          Label1.Text = returnString
      End Sub
    
    private void button1_Click(System.Object sender, System.EventArgs e)
    {
        ServiceReference1.Service1Client client = new
            ServiceReference1.Service1Client();
        string returnString;
    
        returnString = client.GetData(textBox1.Text);
        label1.Text = returnString;
    }
    
  4. В Обозревателе решений дважды щелкните WindowsApplication1 и нажмите Назначить запускаемым проектом.

  5. Чтобы запустить проект, нажмите клавишу F5.Введите какой-то текст и нажмите кнопку.В подписи отображается сообщение "Вы ввели:" и введенный вами текст.

См. также

Другие ресурсы

Consuming ASMX and WCF Services Sample