WCF终结点在重新启动服务后失败
我是WCF的新手,到目前为止,我了解使用WCF创建web服务的基本方法,但我的一些方法有问题 我的服务定义如下,我的web.config类似于。我的模型有5个实体,其中一个暂时不与其他实体相关,其他四个实体之间是相关的,我的模型如下所示。我有一些端点可以执行通常的CRUD操作,插入、更新或删除都没有问题,但是当我试图获取Eventos、Regiones、Clusters和DispositiVO的列表时,该方法失败,并且没有返回任何内容 有趣的是,如果我再次从我的模型生成数据库,重新启动服务并再次插入数据,我就可以从端点获取数据,而不会有任何问题。但是如果我停止服务并重新启动它,那么它会再次失败 这只发生在四个相关的实体上,Usuarios的所有端点都可以正常工作,但对于其他4个,只有当我试图检索实体的所有条目或一个条目时,端点才会失败。如果我尝试从这些实体中插入、更新或删除一个条目,没有问题,只有当我尝试获取条目列表或一个条目时,问题才会出现 例如,如果我尝试访问url127.0.0.1:81/SismosService.svc/region/index,它会返回Google Chrome错误324(net::ERR_EMPTY_RESPONSE),但在127.0.0.1:81/SismosService.svc/usuario/index中不会出现这种情况,该url会返回我期望的正确JSON对象,如下所示: {“Meta”:{“Method”:“GetUsuarios”,“Status”:“ok”},“Response”:[{“ApellidoM”:“Mendoza”,“ApellidoP”:“Arvizu”,“CreatedDateTime”:“/Date(1357947261710-0600)/”,“Nombre”:“Uriel”,“Password”:“uriel88”,“UpdatedDateTime”:“/Date(1357947261710-0600)/”,“UserName”:“uriel88”,“usuarid”:1},{“ApellidoM”Mendoza2”,“ApellidoP”:“Arvizu2”,“createdDate”:“Arvizu2”;/createdDate”:(1357947273070-0600)/“,“Nombre”:“Uriel2”,“密码”:“auam”,“UpdateDateTime”:“/日期(1357947273070-0600)/”,“用户名”:“auam”,“USUARIID”:2}]}WCF终结点在重新启动服务后失败,wcf,web-services,crud,Wcf,Web Services,Crud,我是WCF的新手,到目前为止,我了解使用WCF创建web服务的基本方法,但我的一些方法有问题 我的服务定义如下,我的web.config类似于。我的模型有5个实体,其中一个暂时不与其他实体相关,其他四个实体之间是相关的,我的模型如下所示。我有一些端点可以执行通常的CRUD操作,插入、更新或删除都没有问题,但是当我试图获取Eventos、Regiones、Clusters和DispositiVO的列表时,该方法失败,并且没有返回任何内容 有趣的是,如果我再次从我的模型生成数据库,重新启动服务并再次
为什么这些端点失败?这是由于尝试使用循环引用发送对象造成的,因为EF为确定的实体创建对象,例如,如果要发送EntityA类型的对象foo(其属性类型为EntityB),则该属性将具有引用原始obj的EntityA类型的属性ect foo,这将创建一个循环引用,该引用不能被服务解析为JSON 我所做的是:创建EntityA类型的新实例,并将您感兴趣的来自foo对象的值分配给它的每个属性,将创建循环引用的对象保留为null