Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Вам нужно будет добавить атрибут 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, которое находится в отдельной сборке

Ответ 3

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