WCF - 接收HTTP响应时发生错误

时间:2012-10-22 06:48:25

标签: c# wcf entity-framework

我尝试从服务中获取列表:

   static void Main(string[] args)
    {
      MyClient proxy = new MyClient();
      List<X> l = proxy.Func(1).ToList();
    }

X是来自实体框架项目的DLL的类。

我的服务功能如下:

    public List<X> Func(int NUM)
    {                      
        ProjectContext MyContext = new ProjectContext();
        s = MyContext.X.ToList();
        return s;

    }

我的上下文定义如下:

public class ProjectContext : DbContext
{

    public ProjectContext ()
        : base("name=ApplicationServices")
    {
        this.Configuration.ProxyCreationEnabled=false;
        this.Configuration.LazyLoadingEnabled = false;
    }

    public DbSet<XX> X{ get; set; }

}

我收到错误:

接收到XXX的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。

2 个答案:

答案 0 :(得分:3)

异常可能是由于循环引用。使用IgnoreDataMember属性标记实体中的导航属性,以便它们不参与序列化。

答案 1 :(得分:1)

我习惯和你一样,并且犯了同样的错误。 我决定通过创建一个数据合同来像这样声明类X.

[DataContract]
public class StudentX
{       [DataMember]
        public string studentId;
        [DataMember]
        public string studentName;
        [DataMember]
        public string studentBirthday;


        public Studentx(string Id, string Name, string Birthday)
        {
            // TODO: Complete member initialization
            studentId= Id;
            studentName = Name;
            studentBirthday= Birthday;               
        }
 }

我认为你得到那个错误的原因是因为客户端不理解对象X,所以List也是如此。

此致