Silverlight和WCF:NotFound错误!

我有这样的WCF方法:

public string GetSomething(MyObject obj) { return "Something"; } 

当我从我的silverlight应用程序调用它时,我收到一个错误:
System.Net.WebException:远程服务器返回错误:NotFound …..

我从我的silverlight应用程序中调用方法如下:

  mProxy.GetSomethingAsync(new MyObject()); 

现在,当我调用这样的方法时它工作正常:

  mProxy.GetSomethingAsync(null); 

因此传递复杂对象似乎存在一些问题。

请注意,我从其他方法返回此MyObject,它工作正常,因此它不是一个可序列化的问题。 我还将maxBufferSize和maxReceivedMessageSize更改为最大值,所以不是这样,我传入一个空对象,所以它不应该是一个大小问题。 MyObject只包含简单的数据类型。

有人有什么建议吗?

“未找到”错误可能是Silverlight WCF访问中最烦人的一个特性。

您可能需要查看服务跟踪查看器工具( 此处 )。 它并不总是有用(我遇到了许多无法帮助的问题),但大约有10-20%的时间,它会指向正确的方向。

您可能还想尝试将SilverlightFaultBehavior添加到您的服务中。 它可以将至少一些“未找到”错误消息转换为真正的错误。

我使用WcfTestClient.exe来调试我的WCF服务。 它提供了更加用户友好的错误消息。 如果您想设置Silverlight以接收WCF故障,我发现Silverlight 3中的数据性能和故障策略页面很有帮助。

http://msdn.microsoft.com/en-us/magazine/ee294456.aspx