【问题标题】:Silverlight, WCF and NotFound, oh mySilverlight、WCF 和 NotFound,哦,我的
【发布时间】:2010-11-23 11:08:44
【问题描述】:

我知道这是 StackOverflow 上的热门话题,但请多多包涵。

我们有一个 Silverlight 3 应用程序与 WCF 服务通信。有时,对 WCF 服务的调用会返回 NotFound 异常。

我已经阅读了几乎所有关于 SO 和 Google 的关于此主题的帖子,但我不知道出了什么问题。以下是我的一些发现:

  • 异常发生在随机调用和随机时刻。有时一个方法会工作 50 次,然后突然就出错了。我感觉它与超时有关,因为如果我在调用调用之前让应用程序空闲一段时间,它是最可重现的,但情况并非总是如此 - 有时应用程序中的第一个调用失败。李>
  • 我们使用 SilverlightFaultBehavior 将 HTTP 错误代码转换为 200,并且我们有很多在服务器端引发异常实际上会冒泡到客户端的实例,因此我可以确认这应该按预期工作。
  • Fiddler 在异常发生时没有显示任何特别之处。我什至没有看到有问题的电话。这让我很担心,但这可能意味着异常是几分钟前发生的呼叫超时的结果?
  • 服务跟踪查看器不显示任何内容。
  • 我将 Visual Studio 附加到 Silverlight 项目和 WCF 服务项目,将调试设置为中断所有异常(抛出或处理)并且它不会中断(在 Silverlight 中告诉我 NotFound 问题除外)。这让我觉得可能 NotFound 不是为了响应 WCF 服务端的异常?

我真的不知道从这里去哪里。欢迎任何帮助,任何尝试的指示或想法。

【问题讨论】:

  • 嗨,我知道这是一篇旧帖子,但我遇到了同样的问题。你解决了这个问题吗?

标签: silverlight wcf


【解决方案1】:

以下是对您提到的几点的一些想法:

1) 异常发生在随机调用和随机时刻 - 确保作为方法返回值发送的数据是有效的。我有一个案例,发送具有一些空属性的对象导致序列化失败。我使用 IIS 日志/服务跟踪日志发现了这一点。

2) 那么,你有没有发现什么有用的东西?

3) 我不认为 fiddler 可以帮助解决这种错误。

4) 你确定吗?您是否正确设置了跟踪日志?

5) 您不会在这里找到任何可以帮助您的例外情况。实际异常(当您看到“未找到”错误时)在从服务器端包装消息/数据或在客户端解包消息/数据时引发。

所以,总结一下,确保数据格式正确(可能对您来说似乎是正确的,但 WCF 不正确,只需使用不同的值使用它一段时间)并再次验证跟踪日志记录。

【讨论】:

  • 2) 我提到这一点是为了避免人们告诉我 NotFound 只是服务器端任何异常的结果。我没有从中得到任何有用的东西。 3) 我至少希望看到对 WCF 服务的调用,不是吗? 4) 据我所知,是的。我可以在这些日志中看到很多活动 - 似乎与我的问题无关。 -- 最困扰我的是,很难确保数据格式正确,因为我不知道哪些调用会在它们失败之前失败,而且 Fiddler 无法帮助判断正在通过电线。
  • 哦,这显然是不知从何而来的。我确信我或我的一些同事已经进行了修改,但现在似乎到处都在发生。而且非常随机。
  • “而 Fiddler 无法确定通过网络发送的数据”——这就是为什么我说它在这种情况下没有太大帮助。
  • 但它应该是,因为它显示了所有非失败连接的数据。这让我认为失败发生在建立连接之前。可能是某种 DNS 查找失败。
【解决方案2】:

什么是服务的绑定?它托管在哪里:IIS 或 VS 部署服务器? 我最近看到了这个问题,IIS有问题。它甚至无法打开 *.svc 文件。 所以这里有一个活动计划:

  1. 尝试使用http://localhost/MyApp/MyService.svc等http地址打开svc文件
  2. 如果打开,请编写控制台应用程序并测试服务。
  3. 如果可行,请编写一个 silverlight 简单应用程序。

我希望这会有所帮助。

【讨论】:

  • 一般来说一切正常。 Silverlight 应用程序可以成功 100 次,然后突然失败一次并显示该错误消息。我正在使用 VS 开发服务器进行测试,我希望一旦我部署到 IIS,问题就会消失,但即便如此,开发时也会很麻烦。
【解决方案3】:

我通过添加解决了这个问题

minFreeMemoryPercentageToActivateService="1" 

到 Web.config。默认是

minFreeMemoryPercentageToActivateService="5"

有时会导致此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多