WCF Rest ERR_CONNECTION_RESET响应不大

Dan*_*Edw 3 wcf

错误代码非常糟糕,ERR_CONNECTION_RESET有许多原因,我在其他问题上找到的原因与大型Web服务调用的MaxRequestLength太小有关.我返回的数据只有几个KB,所以这不是问题.

这是我的界面代码

[WebGet(RequestFormat = WebMessageFormat.Json,
  BodyStyle = WebMessageBodyStyle.WrappedRequest,
  ResponseFormat = WebMessageFormat.Json,
  UriTemplate = "GetReportByID?ReportID={ReportID}")]
[OperationContract]
UsageReport GetReportByID(int ReportID);
Run Code Online (Sandbox Code Playgroud)

这是实施

public UsageReport GetReportByID(int ReportID)
{
    return new UsageReport(ReportID);
}
Run Code Online (Sandbox Code Playgroud)

这是UsageReport的类代码

[DataContract]
public class UsageReport
{
 [DataMember]
List<UsageItem> RL;

  public UsageReport(int reportID)
{
       RL = new List<UsageItem>();

        using (SqlDataReader dr = DBUtility.ExecuteReader(cmd, "DBString"))
        {
            while (dr.Read())
            {

                ItemNumber = dr["ItemID"] as int? ?? 0;
                RL.Add(new UsageItem(ItemNumber));
            }
            dr.Close();
        }
}



public class UsageItem
{
    int ItemNumber;

    public UsageItem(int ItemNumber)
    {
        this.ItemNumber = ItemNumber;

    }

}
Run Code Online (Sandbox Code Playgroud)

Dan*_*Edw 5

问题是我的UsageItem类,我错过了必要的DataContract和DataMember字段.

[DataContract]
public class UsageItem
{
[DataMember]
int ItemNumber;

public UsageItem(int ItemNumber)
  {
    this.ItemNumber = ItemNumber;


  }

}
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你,DaneEdw.我浪费了4个小时试图找出我的连接被重置的原因.你的回答救了我. (2认同)