WCF service client application getting "Object not set to an instance of an object"

user1279173 picture user1279173 · Jun 21, 2012 · Viewed 16.8k times · Source

just deployed my WCF service on a server here at my company using IIS 7.5 and everything seems to work fine. But when i set up my client application and add a server reference to the server and then use this code .

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

var s = client.GetBrand("Audi", false);

I get an exception that says "object reference not set to an instance of a object". the s object should not b null (we tried the service on localhost where the we had it all in the same project where it worked).

You looked at the stackstrace and it looks like this.

21.6.2012 16:16:29

Object reference not set to an instance of an object.

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)

Any suggestions ?? P.S The CPU where the WCF Service is hosted doesnt have visual studios so i cant debug through it

Answer

Brad Christie picture Brad Christie · Jun 21, 2012

As I suggested in a comment, make sure you can get the data using WcfTestClient. This both confirms the service is working, and almost unit-tests the method call ensuring it's working from a client perspective.

Second, (unless you watered it down to post on SO) use the correct WCF call method as to avoid these kinds of problems. Once you introduce a dependency it's always a good idea to anticipate for failures (albeit your service, the client's internet connection, or otherwise).

Without knowing anything else about your project it's tough to describe how to fix it. Factors like old WSDL, misconfigured *.config, unexposed endpoint on server, and other issues could be the root of the problem but given what you've shown I have no idea which it could be.

If you can provide more information I'll be glad to update my answer with any more advice I may have. For now, have a look at enabling WCF tracing on the server so you can look back through the log(s) and see if anything is afoul on the server's end (in addition to stepping through your client's call and checking).