Для того, чтобы это работало, вам нужно разместить его с webHttpBinding
и WebServiceHostFactory
в вашем файле web.config и *.svc
службы.
Вы не показывали ни web.config, ни другие конфигурации - поэтому я не могу точно сказать, что вы делаете. Но формат ответа JSON в атрибуте WebGet
поддерживается только в службах WCF в стиле REST. Атрибут WebGet
игнорируется для любых привязок на основе SOAP, например, basicHttpBinding
, wsHttpBinding
, netTcpBinding
и т. Д.
Дополнительные сведения о службах WCF в стиле REST см. В Центре разработчиков REST WCF и о том, как настроить и использовать службы WCF в стиле REST.
Обновление: , чтобы ваш * .svc-файл работал должным образом как служба REST, которая использует атрибут WebGet
и возвращает JSON, необходимо убедиться, что указана правильная фабрика хоста службы:
<%@ServiceHost Language="C#" Service="YourService"
Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>
Указывая WebServiceHostFactory
, вы указываете среде выполнения WCF использовать эту службу в качестве службы REST, а затем все остальные компоненты должны автоматически встать на свои места.