ASP.NET WCF服务不会返回任何结果

时间:2010-08-27 08:05:12

标签: asp.net json wcf

我的WCF服务遇到了问题。 我希望我的方法返回一个用JSON格式化的列表。

当我调用该方法时,我的响应为空。即使我将方法的BodyStyle设置为Wrapped。

如果我返回null,它会起作用,然后输出变为:

null

并将BodyStyle设置为Wrapped:

{
    VerwerkStatus: null
}

如果我调试并观看列表有87项,或者如果我返回list.Count(),我得到87,所以列表不为空。

我怀疑它当前只在我返回一个整数或字符串值时才起作用。如果我返回1个VerwerkStatus对象,它也不起作用。

该服务托管在ASP.NET 3.5上运行的ASP.NET网站项目中。 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 :(得分:0)

确保使用[DataContract]修饰VerwerkStatus类,使用[DataMember]

修饰属性