我有像这样的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只包含简单的数据类型。
有人有什么建议吗?
答案 0 :(得分:10)
“找不到”错误可能是Silverlight WCF访问中最烦人的一个功能。
您可能需要查看服务跟踪查看器工具(here)。它并不总是有用(我遇到了许多无法帮助的问题),但大约10-20%的时间,它会指出我正确的方向。
您可能还想尝试将SilverlightFaultBehavior添加到您的服务中。它可以将至少一些“未找到”错误消息转换为真正的错误。
答案 1 :(得分:2)
我使用WcfTestClient.exe来调试我的WCF服务。它提供了更加用户友好的错误消息。如果您想设置Silverlight以接收WCF错误,我发现Data Performance and Fault Strategies in Silverlight 3 上的此页面对您有帮助。