WCF 4.0: WebMessageFormat.Json не работает с шаблоном REST WCF
Загрузили шаблон WCF REST из это местоположение.
Формат ответа по умолчанию - это XML, который отлично работает. Однако, когда я пытаюсь получить ответ JSON, я все равно получаю XML.
Это мой модифицированный код -
[WebGet(UriTemplate = "",ResponseFormat = WebMessageFormat.Json)]
public List<SampleItem> GetCollection()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } };
}
Обратите внимание на ResponseFormat = WebMessageFormat.Json. Это единственное изменение, которое я сделал с этим шаблоном.
Что мне не хватает?
Спасибо!
Ответы
Ответ 1
Выяснено. automaticFormatSelectionEnabled
свойство для стандартного домена должно быть установлено на false
, а defaultOutgoingReponseFormat должен быть установлен на Json
.
<standardEndpoint name="" helpEnabled="true"
automaticFormatSelectionEnabled="false"
defaultOutgoingResponseFormat ="Json" />
Ответ 2
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Изменения в 2 атрибутах в файле web.config будут исправлены:
-
automaticFormatSelectionEnabled=false
-
defaultOutgoingResponseFormat=Json
(отредактировано: от "true" )
Ответ 3
Для меня настройка формата ответа JSON в атрибуте WebGet не работает. Установка его в тело метода выполняется;
// This works
WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json;
return jsonData;
// This doesn't work
`[WebGet(UriTemplate = "/conditions?term={term}", ResponseFormat = WebMessageFormat.Json)]`
Ответ 4
Нажмите → ссылки ссылки
"Когда включен автоматический выбор формата, инфраструктура анализирует заголовок Accept сообщения запроса и определяет наиболее подходящий формат ответа. Если заголовок Accept не указывает подходящий формат ответа, инфраструктура использует Content-Type запросить сообщение или формат ответа по умолчанию для операции."
РЕДАКТИРОВАТЬ: эта ссылка может заставить вас двигаться вперед
http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf-webhttp-service-returns-http-415-unsupported-media-type.aspx
Ответ 5
Я сталкивался с такими проблемами каждый раз, когда пытался создать веб-службу JSON.
Теперь я просто следую инструкциям, показанным здесь.
http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm
Он показывает, как создать веб-службу JSON, шаг за шагом, с скриншотами и примерами.
Надеюсь, что это поможет.