Sometimes adding a WCF Service Reference generates an empty reference.cs

Viewed 117913

Sometimes adding a WCF Service Reference generates an empty reference.cs and I cannot reference the service anywhere in the project.

Has anyone encountered this?

17 Answers

Thanks to John Saunders post above which gave me an idea to look into Error window. I was bagging all day my head and I was looking at Output window for any error.

In my case the culprit was ISerializable. I have a DataContract class with DataMember property of type Exception. You cannot have any DataMember of type which has ISerializable keyword. In this Exception has ISerializable as soon as I removed it everything worked like a charm.

When attempting to troubleshoot this problem with svcutil, I received the error referred to in dblood's answer ("referenced type cannot be used since it does not match imported DataContract").

In my case the underlying cause seemed to be an enum type that had the DataContract attribute, but whose members were not marked with the EnumMember attribute. The problem class svcutil pointed at had a property with that enum type.

This would fit better as a comment to dblood's answer, but not enough rep for that...

In my case I had a solution with VB Web Forms project that referenced a C# UserControl. Both the VB project and the CS project had a Service Reference to the same service. The reference appeared under Service References in the VB project and under the Connected Services grouping in the CS (framework) project.

In order to update the service reference (ie, get the Reference.vb file to not be empty) in the VB web forms project, I needed to REMOVE THE CS PROJECT, then update the VB Service Reference, then add the CS project back into the solution.

Follow these steps:

  1. Remove Service Reference
  2. Close Visual Studio
  3. Delete /Bin and /Obj folders.
  4. Open Visual Studio.
  5. Add the Service Reference.
  6. You're Welcome :)

It seems that some references are left in these folders when adding the service, causing errors during the auto-generation of code.

Related