Вызов метода службы WCF через браузер

У меня есть служба WCF, которая использует базовую привязку http. Как мне вызвать его операции / методы через браузер?

3 ответа

Решение

Я бы порекомендовал настроить несколько конечных точек для службы. Добавьте конечную точку, используя webHttpBinding, чтобы получить XML-версию сервиса. Если это сделано правильно, ответ, который вы получите от службы, идентичен конечной точке basicHttpBinding, но без издержек SOAP.

Кроме этого, вы не можете вызывать веб-службу SOAP напрямую из браузера, поскольку для этого требуется отправка формы. Вы можете использовать инструмент для тестирования с помощью SOAP, хотя я рекомендую Soap UI. Он написан на Java, но я стараюсь не возражать против этого.:)

Вам необходимо добавить WebGetAttribute в ваш метод, как показано в следующем примере

[OperationContract]
[WebGet(UriTemplate = "/placesList/{userId}",
ResponseFormat = WebMessageFormat.Xml)]
List<Places> GetAllPlacesForUser(String userId)
{
  string xml = "";
  // build xml here
  return xml;
}

Теперь в браузере вы можете вызвать метод следующим образом

http://localhost:8085/GeoPlacesDataService/placesList/10
где 10 - параметр userId.

Примечание. Чтобы добавить WebGetAttribute, необходимо сослаться на пространство имен System.ServiceModel.Web, которое находится в отдельной сборке.

После добавления приведенного выше кода свойство конечной точки необходимо изменить в файле web.config, binding="webHttpBinding" а также behaviorConfiguration="webHttp",

Другие вопросы по тегам