【发布时间】:2013-03-21 17:37:03
【问题描述】:
我已经通过列表通过我的 WCF 服务发送了各种其他对象,没有任何问题,但是当我尝试发送这个特定对象(在列表中)时,我得到了一种超时错误。
跟踪标识符是: TraceIdentifierhttp://msdn.microsoft.com/da-DK/library/System.ServiceModel.Diagnostics.TraceTruncatedQuotaExceeded.aspx
奇怪的是:我有另一种方法专门返回对象(不在列表中),它工作正常。
此外,在调试时,我发现该方法(在服务端)返回列表很好,但是客户端显然无法接收它。
这是调用服务的方法(它在声明“revs”的那一行失败):
public void GetReviewsInModule()
{
using (var db = new RentItServiceClient())
{
var revs = db.GetReviewsInModule(1);
}
}
以下是实际将对象作为列表返回的方法(调试它并返回它正常):
public List<ReviewModule> GetReviewsInModule(int id)
{
using (Context con = new Context())
{
con.Configuration.ProxyCreationEnabled = false;
var mod = con.Modules.Find(id);
if (mod == null)
throw new WebServiceValidationException("Object does not exist");
List<ReviewModule> revs = con.ModuleReviews.Include("User").Where(r => r.Module.Id == id).ToList();
return revs;
}
}
此外,列表中的对象几乎没有任何大小,所以请不要告诉我提高发送/接收限制/超时。
【问题讨论】:
-
我很久以前就放弃了 SOAP,转而使用 REST,只是移动了一个 json 对象 - 使用 SOAP 服务是否有特定原因?此外,检查 WSDL 以查看其中是否有对象,或者至少有一个链接 - 您正在寻找一个 xsd,因为 SOAP 使用 XML
-
该链接指向 msdn 的丹麦突变并且不起作用。
标签: c# .net wcf web-services web