请帮助我解决有关网络服务的问题:
“服务器无法处理请求.---&gt;生成XML文档时出错.---&gt;序列化WebserviceLicenseKey.License_PaymentInfo类型的对象时检测到循环引用。”< /强>
当我使用localhost和webservice时,这是好的。但是,当我将其更新到无法获取数据并引发错误的服务器主机时。
这是我在webservice中的代码,我使用了dbml
**[WebMethod]
[SoapDocumentMethod(Binding = "LicenseKeyService")]
[SoapHeader("UserAccount", Required = true)]
public List<License_PriceDayInfo> GetAllPriceDayInfo()
{
if (!CheckUserAccount())
return null;
return _context.License_PriceDayInfos.ToList();
}**
并在客户端调用webservice并获取数据:
**_userCredentials.UserName = "abc";
_userCredentials.Password = "123456";
_licenseWs.UserCredentialsValue = _userCredentials;
var a = _licenseWs.GetAllPaymentInfo().ToList();**
请帮帮我!!!
非常感谢!
答案 0 :(得分:0)
在您的数据合同中,您可能拥有某种类型的属性,该属性具有返回其父级的属性。默认情况下,序列化程序无法处理此问题,因为它会导致永无止境的序列化。
要解决此问题,您可以使用拼合数据合同而不是分层数据合同,这样您就不会得到这种关系(推荐),或者在数据协定属性上使用IsReference property。请参见示例here。