Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF-接收HTTP响应时出错_C#_Wcf_Entity Framework - Fatal编程技术网

C# WCF-接收HTTP响应时出错

C# WCF-接收HTTP响应时出错,c#,wcf,entity-framework,C#,Wcf,Entity Framework,我尝试从以下服务获取列表: static void Main(string[] args) { MyClient proxy = new MyClient(); List<X> l = proxy.Func(1).ToList(); } public List<X> Func(int NUM) { ProjectContext MyContext =

我尝试从以下服务获取列表:

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

}
static void Main(字符串[]args)
{
MyClient proxy=新建MyClient();
List l=proxy.Func(1.ToList();
}
X是实体框架项目DLL中的类

我的服务功能如下所示:

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

}
公共列表函数(int NUM)
{                      
ProjectContext MyContext=新建ProjectContext();
s=MyContext.X.ToList();
返回s;
}
我的上下文定义如下:

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

}
公共类ProjectContext:DbContext
{
公共项目上下文()
:base(“名称=应用程序服务”)
{
this.Configuration.ProxyCreationEnabled=false;
this.Configuration.LazyLoadingEnabled=false;
}
公共数据库集X{get;set;}
}
我得到一个错误:


接收对XXX的HTTP响应时出错。这可能是由于服务端点绑定未使用HTTP协议造成的。这也可能是由于服务器中止了HTTP请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

我以前和你一样,也犯过同样的错误。 我已经解决了这个问题,通过创建一个数据契约来像这样声明类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,列表也不理解


问候

我过去和你一样,也犯过同样的错误。 我已经解决了这个问题,通过创建一个数据契约来像这样声明类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,列表也不理解



关于

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

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

请启用WCF日志记录以获取更多信息:正如Fabske所说,请启用loglistener并从中获取“真实”异常。我不明白应该如何使用它。请启用WCF日志记录以获得更多信息更多信息:正如Fabske所说,请启用loglistener并从那里获取“真实”异常。我不明白应该如何使用它。我认为我的问题在于对象ProjectContext,因为当我发送不来自ProjectContext的X类列表时OK@BuiAkinori虽然可以通过这种方式序列化字段,最好将它们设置为properties
publicstringstudentid{get;set;}
在问题中,您可以看到我禁用了延迟加载我认为我的问题出在objectprojectcontext中,因为当我发送不来自ProjectContext的X类列表时OK@BuiAkinori虽然可以通过这种方式序列化字段,最好将它们设置为properties
publicstringstudentid{get;set;}
在问题中,您可以看到我禁用了延迟加载什么是导航属性?上下文?假设您有Employee和Department类。Employee类包含Department类型的属性,Department包含Employee集合类型的属性。如果选择Employee类,则Department属性是导航属性。由于这两个类相互引用,如果您尝试序列化一个Employee实例,您将遇到一些麻烦。因此,我应该将IgnoreDataMember属性放在我在ef项目的Department中的Employee对象上?您可以在这两个类上进行装饰,但我主要在collectionWhat is Navigation properties中进行装饰?上下文?假设您有Employee和Department类。Employee类包含Department类型的属性,Department包含Employee集合类型的属性。如果选择Employee类,则Department属性是导航属性。由于这两个类相互引用,如果您尝试序列化一个Employee实例,您将遇到一些麻烦。因此,我应该将IgnoreDataMember属性放在我在ef项目的Department中的Employee对象上?您可以对这两个类进行修饰,但我主要在集合中进行修饰