2009-04-29 4 views

ответ

10

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

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

36

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

+6

Веб-сайт не работает для меня. IE показывает мне «плохой запрос». – Josh

6

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

+3

Не могли бы вы указать теги, которые содержат эти свойства, пожалуйста? Или это было бы очень мило, если вы предоставите нам свой файл web.config. –

Смежные вопросы