2010-12-14 139 views
0

我有一个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)。

任何指针,将不胜感激。

+0

你试图返回CustomerHistory列表只看到是否可行? – thomasmartinsen 2010-12-15 06:57:07

+0

您是使用服务参考还是Web参考? – 2010-12-15 18:51:49

回答