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


Создание и сборка примеров Windows Communication Foundation

Примеры Windows Communication Foundation (WCF) можно создавать с помощью интегрированной среды разработки Visual Studio или команды msbuild из командной строки. В этой статье описываются обе процедуры.

Замечание

Прежде чем создавать или запускать любой из примеров WCF, убедитесь, что вы выполнили процедуру установкиOne-Time для примеров Windows Communication Foundation.

Создание примера с помощью командной строки

  1. Откройте командную строку разработчика для Visual Studio и перейдите к подкаталогу для конкретного языка в расположении каталога, где установлен пример.

  2. Введите msbuild в командной строке. Файлы клиентской программы создаются для client\bin , а файлы программы службы создаются для service\bin. Если служба размещается в Интернет-службах (IIS), то файлы программы службы также копируются в каталог servicemodelsamples и его подкаталог \bin.

Замечание

Необходимо задать списки управления доступом на%systemdrive%\inetpub\wwwroot, чтобы предоставить разрешения на изменение учетной записи, которую вы используете. В противном случае некоторые события после сборки завершаются ошибкой. Кроме того, вы можете оставить списки управления доступом без изменений и запустить командную строку SDK с правами администратора.

Создание примера с помощью Visual Studio

  1. В меню "Файл" в Visual Studio выберите "Открыть>проект или решение". Перейдите к подкаталогу для конкретного языка в каталоге, в котором установлен пример, и дважды щелкните значок файла .sln, чтобы открыть решение в Visual Studio.

  2. В меню "Сборка" выберите "Перестроить решение".

    Файлы клиентской программы создаются для client\bin, а файлы программы службы создаются для service\bin. Если служба размещена в IIS, файлы программы службы также копируются в каталог servicemodelsamples и его подкаталог \bin.

Замечание

Необходимо задать списки управления доступом на %systemdrive%\inetpub\wwwroot, чтобы предоставить разрешения на изменение учетной записи, под которой выполняется работа. В противном случае некоторые события после сборки завершаются ошибкой. Кроме того, можно оставить списки управления доступом без изменений и запустить командную строку SDK или Visual Studio от имени администратора. Для некоторых действий Visual Studio (например, присоединение отладчика к рабочему процессу ASP.NET) также требуются права администратора.

Настройка пакетных файлов и скриптов

Setup.exe и Cleanup.exe пакетные файлы и скрипты следует запускать из командной строки разработчика для Visual Studio. Несколько файлов настройки и очистки выполняют задачи, требующие прав администратора и должны быть запущены с правами администратора.

Важные сведения о безопасности конечных точек метаданных

Чтобы предотвратить непреднамеренное раскрытие потенциально конфиденциальных метаданных службы, конфигурация по умолчанию для служб Windows Communication Foundation (WCF) отключает публикацию метаданных. Это поведение безопасно по умолчанию, но также означает, что вы не можете использовать средство импорта метаданных (например, Svcutil.exe) для создания клиентского кода, необходимого для вызова службы, если в конфигурации не включено поведение публикации метаданных службы. Чтобы упростить эксперимент с примерами, почти все примеры предоставляют незащищенную конечную точку публикации метаданных. Такие конечные точки потенциально доступны анонимным неавторентированным потребителям и должны быть приняты меры, прежде чем развертывать такие конечные точки, чтобы обеспечить общедоступное раскрытие метаданных службы. Дополнительные сведения о метаданных службы публикации см. в примере поведения публикации метаданных . Посмотрите пример пользовательской защищенной конечной точки метаданных, чтобы увидеть, как можно защитить конечную точку метаданных.

Обработка исключений.

Как правило, эти примеры не включают обработку исключений, чтобы держать код сосредоточенным на теме примера. Дополнительные сведения об обработке исключений см. в примере ожидаемых исключений .

Повторное создание клиентов и конфигурации с помощью Svcutil

С помощью средства служебной программы метаданных ServiceModel (Svcutil.exe) можно повторно создать клиентский код и конфигурацию для большинства примеров. Для некоторых примеров требуется вручную измененная конфигурация. Например, если вы используете Svcutil.exe для повторного создания конфигурации для примера, использующего учетные данные сертификата клиента, необходимо вручную указать учетные данные, настроенные ранее. Некоторые примеры используют определенные параметры Svcutil.exe, чтобы повлиять на созданный код, эти параметры указаны в конкретных примерах разделов.

Повторное создание файлов клиента и конфигурации

  1. Откройте командную строку SDK и перейдите к подкаталогу для конкретного языка в расположении каталога, где установлен пример.

  2. Если служба является типом, размещенным в Интернете, используйте следующую команду.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Если служба является самостоятельно размещаемой, введите следующую команду.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Замените http://localhost:8000/ServiceModelSamples/service.svc/mex адрес локальной конечной точки службы mex.

    Чтобы создать клиент в типе Visual Basic, используйте следующую команду.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

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

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Замечание

    Чтобы пропустить создание конфигурации клиента, добавьте параметр /noConfig .

См. также