У меня есть служба WCF, которая использует базовую привязку http. Как я могу вызвать свои операции/методы через браузер?
Вызов метода службы WCF через браузер
Ответ 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"
.