Silverlight4调用ASMX Web服务

时间:2010-12-14 23:01:53

标签: silverlight web-services asmx

我有一个带有Silverlight项目的Visual Studio解决方案,以及一个托管Silverlight应用程序的Web项目。 Web项目还包含一个由Silverlight ap。

调用的ASMX Web服务

如下所述,对Web服务的某些调用工作正常,但是其他调用引发了一个CommunicationException,包装了WebException - 两者都显示消息“服务器返回了以下错误:'not found'”。

首先,这是我的原始方法,如上所述失败(为简单起见,实体名称已更改):

[WebMethod]
public Customer GetCustomer(int id)
{
    CustomerDataContext dc = new CustomerDataContext();
    return dc.Customers.SingleOrDefault(x => x.Id == id);
}

其次,为了调试问题,我把Linq带到了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)。

任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

啊,着名的“未找到”错误,尝试使用web.config中的标记从该错误中获取详细信息。这将创建一个日志文件,提供错误的详细信息。

以下链接解释了如何执行此操作:

http://blogs.runatserver.com/lppinson/post/2010/04/15/Debugging-WCF-Web-Services.aspx