it-swarm.com.de

Wie kann ich die Fehlermeldung "Die Zielbaugruppe enthält keine Diensttypen" in VS2008 entfernen?

Ich habe eine Client/Server-Wcf-Anwendung

Meine ausführbare Datei definiert keine ServiceContract, sie hat nicht einmal einen Verweis auf System.ServiceModel (hat stattdessen einen Verweis auf eine Assembly, die die Verbindungslogik zum Server enthält)

Ich habe eine andere Assembly, auf die meine EXE verweist, die eine ServiceContract enthält.

Es hat gut funktioniert. Gestern habe ich viel mit meinen Projekteinstellungen gespielt (partielles Vertrauen, volles Vertrauen, Bereitstellungseinstellungen usw.) und jetzt habe ich jedes Mal, wenn ich meinen Client starte, Folgendes Nachrichtenbox :

Microsoft WCF-Diensthost
Die Zielassembly enthält keine Servicetypen.
Möglicherweise müssen Sie die Code Access Security-Richtlinie dieser Assembly anpassen. 

Dann friert VS 1 Minute lang ein und lässt mich schließlich wie üblich mein Programm debuggen.

Ich habe einen Beitrag zu diesem Problem gefunden , aber die Lösung ist in meiner Situation nicht zutreffend. 

67
Brann

Das ist immer so. Sie suchen nach 2 Stunden, landen schließlich auf SO und 5 Minuten später finden Sie die Antwort.

Auf der Registerkarte WCF-Optionen der Eigenschaften des Projekts, in denen die Variable ServiceContract, definiert ist, befindet sich ein Kontrollkästchen mit der Bezeichnung "WCF Service Host beim Debuggen eines anderen Projekts in der gleichen Lösung", das ich nicht aktiviert habe.

Ich habe keine Ahnung, wie es überhaupt geprüft wurde.

Wie auch immer, das hat mein Problem gelöst. Siehe MSDN-Referenz für diese Projekteinstellung.

115
Brann

Für den Fall, dass jemand anderes nach einer Antwort sucht, kann eine andere Ursache für diesen Fehler die Ursache sein, wenn in einem Projekt eine App.config-Datei vorhanden ist, bei der es sich um eine Klassenbibliothek mit einem <system.serviceModel>-Abschnitt handelt.

Ich habe den Servicecode aus einem Projekt, das eine ausführbare Datei war, in ein anderes Projekt verschoben, aber aus Versehen die alte App.config-Datei verlassen. Mein neues Projekt, bei dem es sich um eine Konsolenanwendung handelt, die programmgesteuert konfiguriert und WCF gestartet wurde. Da sich jedoch die alte App.config-Datei in der referenzierten Assembly befand, würde ich dieses kryptische Dialogfeld auch beim Debuggen der Konsolenanwendung erhalten.

Es dauerte ungefähr 12 Stunden, um dieses Problem aufzuspüren, da ich nicht wusste, dass der VS-Debugger alle referenzierten Assemblys auf App.config überprüft, für die WCF-Services konfiguriert sind.

11
bpeikes

Um ein Projekt mit diesem Problem zu ermitteln, finden Sie in Ihren Projektdateien die Zeichenfolge 3D9AD99F-2412-4246-B90B-4EAA41C64699.

Beispiel: <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Deaktivieren Sie dann die Projektoption "WCF-Optionen/WCF-Service-Host beim Debuggen eines anderen Projekts in derselben Lösung"

7

Einige Blogs sagen, es könnte geschehen sein, weil das Projekt aus einem anderen Zweig kopiert wurde und die GUIDe überschrieben wurde. Löschen Sie sie einfach, wie in diesem Blog erläutert.

4
HydPhani

Ich ging auch durch die gleiche Art von Problem und suchte stundenlang, um diesen bestimmten Fehler loszuwerden. Endlich habe ich einen Ausweg gefunden.

Wenn Sie auf dieses spezielle Problem stoßen, versuchen Sie ), Ihre Server- und Clientanwendung als Administrator auszuführen, und ändern das WPF-Eigenschaften des Projekts.

Wenn Sie auf die WPF-Eigenschaften des Projekts klicken, finden Sie eine Erstellungsoption. In der Erstellungsoption gibt es eine Option namens PLATTFORMZIEL , in der Sie das Plattformziel in x86 ändern können. Beachten Sie auch, dass Sie für x84 den Wert x84 festlegen müssen.

Nun führen Sie Ihr Projekt von der Konsole aus aus, dh gehen Sie in den Ordner, in dem Ihre Projekte gespeichert sind, und in der Bin des Clients finden Sie einen Ordner debug wo du deine Konsolenanwendung bekommst . Sie sollten nun in der Lage sein, die Anwendung erfolgreich auszuführen.

1

Dieser Fehler kann auch durch einen falschen Dienstnamen in Ihrer Konfigurationsdatei verursacht werden:

<system.serviceModel>
    <services>
      <service name="MyServiceLibrary.WrongServiceName">
...

Überprüfen Sie Ihre Konfigurationsdatei und stellen Sie sicher, dass der Dienstname korrekt ist.

1
Stacked

Alter Faden. Entfernen Sie einfach alle Befehlszeilenargumente aus dem Debug-Abschnitt in den Optionen. Das hat mir geholfen.

1
BlueHeaven

Das Hinzufügen einer anderen Lösung, da diese Nachricht mehrere Ursachen zu haben scheint. Durch das Entfernen der folgenden GUID aus dem ProjectTypeGuids-Tag in der Projektdatei wurde das Problem behoben.

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699}</ProjectTypeGuids>
0
tgriffin