从方法调用中取回Null

时间:2011-10-26 03:23:58

标签: wcf

好的,我先说一些事实:

  1. 这是一个一直在运行的网络服务。有几个.svc端点都可以工作。现在虽然有一个不是,这意味着当我通过另一个项目使用服务时我可以对它进行方法调用,但结果是我一直得到null。
  2. 此服务中持续发回null HAS NOT CHANGED的方法的代码
  3. 我确实搞砸了端点配置,指向几个不同的服务器。我也尝试了它所指向的原始服务器。无论我可以更新服务,但即使我将其设置回旧的端点路径,在测试对此服务的调用时,我仍然从单元测试中返回null。单元测试正在正在使用服务的项目中运行
  4. 我已经检查了服务本身的app.config和web.config。据我所知,一切看起来都很好......但我又是WCF的新手
  5. 我知道这很普遍,但是我正在寻找一些指导,从哪里开始寻找为什么我突然得到空值。这些方法背后的存储过程没有改变。这些方法调用再次在过去一周的某个时间点工作,但现在不是。

2 个答案:

答案 0 :(得分:1)

这很普遍,但有几件事要尝试......

  1. 尝试更新服务参考以确保您拥有最新版本的代理对象
  2. 您是否尝试在服务中调试并查看在客户端获取服务之前是否从服务返回了预期的返回值?
  3. 您是否捕获了服务中的所有异常,然后返回结果对象,或者您是否让异常通过?如果你让它们失败,WCF频道可能会出现故障。
  4. 尝试使用Fiddler并查看是否应该调用认为的端点,以及响应对象是否确实为空。
  5. 使用旧式技巧,在返回客户端之前将结果写入服务器上的文件。这将帮助您了解它是否是服务器到客户端序列化问题。您甚至可能需要在服务接到电话时写入文件,以确保您的客户端正在连接。
  6. 您真正需要做的是首先调试服务内部并逐步完成代码。绝对确定SPROC正在返回您期望的内容,然后没有引入环境错误。

答案 1 :(得分:1)

当你遇到奇怪的WCF问题时,首先要做的就是配置WCF跟踪。这是一个非常强大的工具。你甚至可以看到消息的内容。

以下是关于此的正式文件:Configuring WCF Tracing