WCF服务客户端应用程序获取"对象未设置为对象的实例"

use*_*173 6 .net c# wcf exception-handling wcf-client

刚刚使用IIS 7.5在我公司的服务器上部署了我的WCF服务,一切似乎都运行正常.但是,当我设置我的客户端应用程序并向服务器添加服务器引用,然后使用此代码.

ServerReference.ServiceClient client = new ServerReference.ServiceClient();

var s = client.GetBrand("Audi", false);
Run Code Online (Sandbox Code Playgroud)

我得到一个异常,说"对象引用未设置为对象的实例".s对象不应该为null(我们尝试在localhost上的服务,我们在它工作的同一个项目中拥有它).

你查看了stackstrace,它看起来像这样.

21.6.2012 16:16:29
Run Code Online (Sandbox Code Playgroud)

你调用的对象是空的.

Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Run Code Online (Sandbox Code Playgroud)

有什么建议 ??PS托管WCF服务的CPU没有可视工作室,所以我无法通过它进行调试

Bra*_*tie 2

正如我在评论中建议的那样,确保您可以使用WcfTestClient获取数据。这既确认了服务正在工作,又几乎对方法调用进行了单元测试,确保它从客户端的角度工作。

其次,(除非您将其淡化以发布在 SO 上)使用正确的 WCF 调用方法来避免此类问题。一旦引入依赖项,预测失败总是一个好主意(尽管是您的服务、客户端的互联网连接或其他)。

如果不了解有关您的项目的任何其他信息,就很难描述如何修复它。旧的 WSDL、配置错误的 *.config、服务器上未公开的端点以及其他问题等因素可能是问题的根源,但鉴于您所显示的内容,我不知道它可能是什么。

如果您可以提供更多信息,我将很高兴用我可能有的更多建议来更新我的答案。现在,看看在服务器上启用 WCF 跟踪,以便您可以回顾日志并查看服务器端是否有任何问题(除了单步执行客户端的调用和检查之外)。