I'm trying to consume a WCF 4.0 service in my application. I built, tested, and deployed the service from the ground up. The service works in the WCF test client and can be consumed in any other test project I built. The problem is this one particular application... the only one that matters as it's the reason I built the service.
When I build the application after referencing the service I get an error. The error is "The type name 'AAA' does not exist in the type 'YYY.YYY' ".
The project consuming the service is named 'YYY.Web' and is in the 'YYY' namespace.
The service was initially created in the 'YYY.ReportingService' namespace. It has been chan开发者_如何学运维ged to a different namespace once this problem started. Is now in the 'MMM' namespace.
I added a using directive 'YYY.Service1'. I also tried aliasing the using directive (using test = YYY.Service1)
To make sure something wasn't messed up with my service and its namespaces, I built a new service with a single method. It takes a string parameter and returns "Hello, " and whatever string is passed. This services also works in the WCF test client and the couple of test projects I created. This service is in the SimpleTestService namespace, BasicService class, with a methiod named GetGreeting. Naming was done intentionally to avoid any possible naming collisions. The error still occurs with this new service.
Any thoughts on this? Thanks!
This one took me a while. Turned out, that "The type name 'AAA' does not exist in the type 'YYY.YYY' "
was caused by the YYY.YYY - my consuming class sharing name with its containing namespace.
Solution: rename the consuming class to something that is not equal to the full name of its namespace, i.e. YYY.XXX
.
I realize it's and old question, but I just had this problem and the issue was a namespace conflict.
In my case AAA was named ServiceClient and that generated the same error you experienced. Once I removed the namespace conflict (called it ConsoleClient instead) all worked as expected.
I have another issue. Imagine two projects with different namespaces and following classes
Project 1
[DataContract(Namespace="SomeNamespace")]
public class A
{
[DataMember]
public class B { get; set; }
}
Project 2
// Here no DataContract attribute
public class B
{
//...
}
In this case you'll get same error as above. Hopefully this will help someone.
Do you have an old version of the service DLL in the GAC? Your application might be referencing another version of the assembly hence the missing types.
I hope you have updated the service reference after renaming the namespace in the service. Usually you get this error when the client side proxy is not updated with the latest types form the server. You can try updating the service reference.
精彩评论