【问题标题】:Silverlight and WCF: NotFound error!Silverlight 和 WCF:未找到错误!
【发布时间】:2010-02-23 04:59:25
【问题描述】:

我有这样的 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 只包含简单的数据类型。

大家有什么建议吗?

【问题讨论】:

  • 您是否在 WCF 代码中设置了断点并通过服务方法进行跟踪以查看是否在某处引发了异常?还是WCF方法真的和你给的一样简单?

标签: c# .net wcf silverlight


【解决方案1】:

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

您可能需要查看服务跟踪查看器工具 (here)。它并不总是有帮助(我遇到了很多它无法解决的问题),但在大约 10-20% 的情况下,它会为我指明正确的方向。

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

【讨论】:

  • 还可以使用 Fiddler2 检查您是否遇到了跨域问题。
  • +1 用于添加 SilverlightFaultBehavior - 解决了我的问题。
【解决方案2】:

我已使用 WcfTestClient.exe 来调试我的 WCF 服务。它提供了更加用户友好的错误消息。如果您想设置 Silverlight 以接收 WCF 错误,我发现 Data Performance and Fault Strategies in Silverlight 3 上的此页面很有帮助。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多