【问题标题】:ASP.NET WCF Service does not return any resultsASP.NET WCF 服务不返回任何结果
【发布时间】:2010-08-27 08:05:11
【问题描述】:

我的 WCF 服务有问题。 我希望我的方法返回 JSON 格式的列表。

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

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

null

并且将 BodyStyle 设置为 Wrapped:

{
    VerwerkStatus: null
}

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

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

该服务托管在一个在 ASP.NET 3.5 上运行的 ASP.NET 网站项目中。 VerwerkStatus 对象是一个实体对象,因此它是可序列化的。

我的代码:

/// <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>

我只是无法让它工作..

【问题讨论】:

    标签: asp.net json wcf


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多