тестирует сервис wcf в браузере - PullRequest
3 голосов
/ 03 февраля 2011

Я не могу вызвать базовый веб-метод wcf в браузере, даже если <ServiceMetadata httpGetEnabled="True"/> в файле конфигурации.

Для исходного кода, он очень прост:

Для интерфейса:

[ServiceContract]
    public interface IService1
    {

        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
        string GetData();

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: ajoutez vos opérations de service ici
    }

А для реализации:

 public string GetData()
        {
            return ("{'code':'yes'}");
        }

Этот метод отлично работает во встроенном тестере службы Visual Studio wcf и возвращает {'code':'yes'}.

В браузере, когда я вызываю http://localhost:54421/Service1.svc/GetData, отображается пустая страница. Как я могу решить это?

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Большинство браузеров не будут отображать результаты json в браузере. Обычно вы видите пустую страницу (попробуйте просмотреть источник) или вам будет предложено загрузить файл.

Если вы используете Firefox, есть некоторые надстройки для просмотра JSON и дополнения Poster для тестирования веб-служб.

Если вы используете Google Chrome, вы можете попробовать Pretty JSON

1 голос
/ 03 февраля 2011

Я делаю это, создавая дополнительное поведение конечной точки для вызовов REST, чтобы у меня были разные клиенты. Посмотрите на эту конфигурацию:

  <endpointBehaviors>
    <behavior name="RESTFriendly">
      <webHttp />
    </behavior>
  </endpointBehaviors>

в определении сервиса добавьте конечную точку, которая использует это поведение

<endpoint address="/easy" behaviorConfiguration="RESTFriendly" ...

теперь вы можете позвонить в службу как из браузера, так и из клиента wcf. Чтобы позвонить из браузера:

http://localhost:54421/Service1.svc/easy/GetData

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...