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!
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
.
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.
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.
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.
Tags und Links wcf .net-4.0 web-services