Служба ASP.NET WCF не возвращает никаких результатов. - PullRequest
1 голос
/ 27 августа 2010

У меня проблемы с моей службой WCF. Я хочу, чтобы мой метод возвращал список в формате JSON.

Когда я вызываю метод, мой ответ пуст. Даже когда я устанавливаю BodyStyle метода для Wrapped.

Это работает, если я возвращаю ноль, тогда результат становится:

null

и BodyStyle со значением Wrapped:

{
    VerwerkStatus: null
}

Если я отлаживаю и наблюдаю за списком, есть 87 элементов или если я возвращаю list.Count (), я получаю 87, поэтому список не пуст.

Я подозреваю, что в настоящее время это работает, только когда я возвращаю одно целое или строковое значение. Если я верну 1 объект VerwerkStatus, он тоже не будет работать.

Служба размещена в проекте веб-сайта ASP.NET, работающем в ASP.NET 3.5. Объект VerwerkStatus является объектом Entity, поэтому его можно сериализировать.

Мой код:

/// <summary>
/// 
/// </summary>
/// <param name="sessie"></param>
/// <param name="verwerkStatusId"></param>
/// <returns></returns>
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
public List<VerwerkStatus> Status(string sessie, int verwerkStatusId)
{
    if (!String.IsNullOrEmpty(sessie))
    {
        Guid sessieGuid = new Guid(sessie);
        var status = statusRepository.GetStatus(sessieGuid, verwerkStatusId);
        var list = status.ToList();
        // list.Count() == 87
        // none in browser
        return list;
    }
    else
    {
        return null;// "FOUT: Geen sessie";
    }
}

и Web.Config:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <behaviors>
        <endpointBehaviors>
            <behavior name="SheetProcessServiceAspNetAjaxBehavior">
                <webHttp />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="SheetProcessServiceAspNetAjaxBehavior">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service name="SheetProcessService" behaviorConfiguration="SheetProcessServiceAspNetAjaxBehavior">
            <endpoint address="" behaviorConfiguration="SheetProcessServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="SheetProcessService" />
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        </service>
    </services>
</system.serviceModel>

Я просто не могу заставить его работать ..

1 Ответ

0 голосов
/ 04 апреля 2011

Убедитесь, что класс VerwerkStatus украшен [DataContract], а свойства - [DataMember]

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