我有一个Visual Studio解决方案,包含一个Silverlight项目和一个托管Silverlight应用程序的Web项目。该Web项目还包含由Silverlight ap调用的ASMX Web服务。Silverlight4调用ASMX Web服务
如下所述,某些对Web服务的调用可以正常工作,而其他调用会导致抛出CommunicationException,并包装一个WebException - 这两个消息都带有消息“服务器返回以下错误:'未找到'”。
首先,这是我原来的方法,它未能按上述(实体名称变更为简单起见):
[WebMethod]
public Customer GetCustomer(int id)
{
CustomerDataContext dc = new CustomerDataContext();
return dc.Customers.SingleOrDefault(x => x.Id == id);
}
其次,调试我把LINQ to SQL的问题和数据库出来的图片,和下面的代码工作正常:
[WebMethod]
public Customer GetCustomer(int id)
{
Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() };
return c;
}
三,想着这个,这两种方法之间的一个区别是,第一个将包括在客户历史价值。我延长了第二种方法包括这一点,并开始再次失败:
[WebMethod]
public Customer GetCustomer(int id)
{
Customer c = new Customer() { ID=1, Name="Bob", History = new EntitySet<CustomerHistory>() };
c.History.Add(new CustomerHistory() { Id=1, CustomerId=1, Text="bla" });
return c;
}
我坚持至于如何进步 - 我现在的想法是,这可能是对Silverlight的侧反序列化的问题时,对象图更深。这理性没有道理,但我想不出别的。我已确认传输大小和缓冲区大小足够大(默认情况下为2GB)。
任何指针,将不胜感激。
你试图返回CustomerHistory列表只看到是否可行? – thomasmartinsen 2010-12-15 06:57:07
您是使用服务参考还是Web参考? – 2010-12-15 18:51:49