Fehler beim Service: Der Typname 'AAA' existiert nicht im Typ 'YYY.YYY'

8

Ich versuche, einen WCF 4.0-Dienst in meiner Anwendung zu verwenden. Ich habe den Dienst von Grund auf aufgebaut, getestet und implementiert. Der Dienst funktioniert im WCF-Testclient und kann in jedem anderen von mir erstellten Testprojekt verwendet werden. Das Problem ist diese eine bestimmte Anwendung ... die einzige, die zählt, weil es der Grund ist, warum ich den Service gebaut habe.

Wenn ich die Anwendung nach der Referenzierung des Dienstes erstelle, erhalte ich einen Fehler. Der Fehler ist "Der Typname 'AAA' existiert nicht im Typ 'YYY.YYY'".

Das Projekt, das den Dienst verwendet, heißt 'YYY.Web' und befindet sich im Namensraum 'YYY'.

Der Dienst wurde ursprünglich im Namensraum 'YYY.ReportingService' erstellt. Nachdem dieses Problem aufgetreten ist, wurde es in einen anderen Namespace geändert. Befindet sich jetzt im Namensraum 'MMM'.

Ich habe eine using-Direktive 'YYY.Service1' hinzugefügt. Ich habe auch versucht, die using-Direktive zu aliasieren (mit test = YYY.Service1)

Um sicherzustellen, dass etwas nicht mit meinem Service und seinen Namespaces verkehrt ist, habe ich einen neuen Service mit einer einzigen Methode erstellt. Es nimmt einen String-Parameter und gibt "Hallo" zurück, und welche Zeichenfolge auch immer übergeben wird. Dieser Dienst funktioniert auch im WCF-Testclient und in den paar Testprojekten, die ich erstellt habe. Dieser Dienst befindet sich im SimpleTestService-Namespace, der BasicService-Klasse, mit einem Methood namens GetGreeting. Die Benennung erfolgte absichtlich, um mögliche Namenskonflikte zu vermeiden. Der Fehler tritt weiterhin bei diesem neuen Dienst auf.

Irgendwelche Gedanken dazu? Danke!

    
user978467 04.10.2011, 13:17
quelle

5 Antworten

19

Dieser dauerte eine Weile. Es stellte sich heraus, dass "The type name 'AAA' does not exist in the type 'YYY.YYY' " durch den YYY.YYY - den Namen meiner verbrauchenden Klassenfreigabe mit dem enthaltenen Namespace verursacht wurde.

Lösung: Benennen Sie die konsumierende Klasse in etwas um, das nicht mit dem vollständigen Namen des Namespace übereinstimmt, d. h. YYY.XXX .

    
quelle
1

Ich habe ein anderes Problem. Stellen Sie sich zwei Projekte mit verschiedenen Namespaces und folgenden Klassen vor:

Projekt 1

%Vor%

Projekt 2

%Vor%

In diesem Fall erhalten Sie denselben Fehler wie oben. Hoffentlich hilft das jemandem.

    
Milan Matějka 12.03.2014 13:47
quelle
0

Haben Sie eine alte Version der Service-DLL im GAC? Ihre Anwendung verweist möglicherweise auf eine andere Version der Assembly, also auf die fehlenden Typen.

    
SHug 04.10.2011 13:38
quelle
0

Ich hoffe, Sie haben die Servicereferenz aktualisiert, nachdem Sie den Namespace im Service umbenannt haben. Normalerweise erhalten Sie diesen Fehler, wenn der clientseitige Proxy nicht mit den neuesten Typen des Servers aktualisiert wird. Sie können versuchen, die Servicereferenz zu aktualisieren.

    
Nilesh Gule 04.10.2011 14:09
quelle
0

Ich verstehe, dass es eine alte Frage ist, aber ich hatte gerade dieses Problem und das Problem war ein Namensraumkonflikt.

In meinem Fall hatte AAA den Namen ServiceClient und das erzeugte den gleichen Fehler, den Sie hatten. Sobald ich den Namespace-Konflikt entfernt habe (stattdessen ConsoleClient), funktionierte alles wie erwartet.

    
Sean Gough 16.03.2012 14:32
quelle

Tags und Links