Служба RESTful C # не отвечает в json - PullRequest
0 голосов
/ 24 октября 2018

У меня есть служба RESTful, которая работает недолго, возвращая json при каждом вызове его методов.Только недавно я добавил новый метод, написанный точно так же, как другие, но он отвечает только в формате xml.

Вот определения существующего интерфейса метода:

[ServiceContract]
public interface IAccess
{

    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetRunList?username={username}&FromRun={FromRun}&ToRun={ToRun}&Project={Project}")]
    List<RunInfo> GetRunList(string username, int FromRun, int ToRun, string Project = null);

    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetPressureTap?RunNumber={RunNumber}")]
    ServicePressureTapMap GetPressureTap(int RunNumber);

    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetPressureTapByAttitude?RunNumber={RunNumber}&FRH={FRH}&RRH={RRH}&Yaw={Yaw}&Steer={Steer}&Roll={Roll}&Exhaust={Exhaust}")]
    List<ServiceAttitudePressureTap> GetPressureTapByAttitude(int RunNumber, decimal FRH, decimal RRH, decimal Yaw, decimal Steer, decimal Roll, decimal Exhaust);

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetPresTapImage?RunNumber={RunNumber}&MapGuid={MapGuid}&MapName={MapName}&Version={Version}")]
    Stream GetPresTapImage(int RunNumber, string MapGuid, string MapName, int Version);

}

и все, что я сделал, это добавил следующий новый метод внизу:

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetRunConfigs?RunNumber={RunNumber}")]
    List<ServiceRunConfig> GetRunConfigs(int RunNumber);

Все возвращенные классы были объявлены одинаково.Только новый метод возвращается как XML.Я пропустил что-то явно очевидное?

1 Ответ

0 голосов
/ 25 октября 2018

Оказывается, после долгих поисков мне нужно было добавить это:

<endpointBehaviors>
  <behavior name="endpointBehavior">
    <enableWebScript />
    <webHttp defaultBodyStyle="Wrapped" defaultOutgoingResponseFormat="Json" />
  </behavior>
</endpointBehaviors>

в мой web.config, несмотря на наличие строки WebInvoke в интерфейсе, которая делает то же самое.Пойди разберись ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...