2011-10-26 100 views
1

好吧,让我先状态的一些事实:获得空返回从方法调用

  1. 这是已经工作的Web服务。有几个.svc端点都工作。现在虽然有一个不是,也就是说当我通过另一个项目使用服务时,我可以对它进行方法调用,但是我一直得到空值。
  2. 这个服务中的方法代码不断地发回空HAS NOT CHANGED
  3. 我确实搞乱了端点配置,指向它的几个不同的服务器。我试过它指向的原始服务器。无论我可以更新服务,但是即使将其设置回旧的端点路径,在测试对此服务的调用时,仍然会从单元测试中返回空值。单元测试运行在正在使用服务的项目中
  4. 我检查了服务本身的app.config和web.config。据我所见,一切看起来都很好...但我又是新来的WCF

我知道这是相当普遍的,但我正在寻找一些指导,从哪里开始寻找,突然之间变得空虚。这些方法后面的存储过程没有改变。这些方法调用再次在过去一周的某个时间点工作,但现在不是。

回答

1

这是非常普遍的,但几件事情尝试...

  1. 尝试更新服务引用,以确保您有最新代理的版本对象
  2. 您是否尝试过内部调试你的服务并查看预期返回值是否在客户获得之前从服务中返回?
  3. 你是否捕获到服务中的所有异常,然后返回结果对象还是让异常通过?如果你让他们失败,WCF频道可能会出现故障。
  4. 尝试使用提琴手,并看看你是否认为应该被调用的端点是,如果响应对象确实为空。
  5. 在您返回客户端之前,使用老派技巧并将结果写入服务器上的文件。这将帮助您了解它是否是服务器到客户端的序列化问题。您甚至可能需要在服务接到电话时写入文件,以确保您的客户端正在连接。

你真正需要做的是从你的服务内部调试开始,逐步浏览代码。确保SPROC正在返回您期望的内容,然后不会引入环境错误。

+0

做了#1万次....我每次测试过程的时间。 – PositiveGuy

+0

#2我已经有实际服务解决方案中已经存在的单元测试,他们现在失败了。此前他们并没有失败。它们失败,返回从该服务的方法调用的单元测试返回的null。 – PositiveGuy

+0

#3我是新来的这个团队,但他们发回一个自定义的状态对象,以发送回调状态... – PositiveGuy

1

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

下面是本作的官方文档:Configuring WCF Tracing

+0

是的,我做了一段时间后,但它对这个问题没有太大的帮助。 – PositiveGuy