Ich habe gerade etwas Besonderes bemerkt. Ich habe einen internen Bestandsservice, der über basicHttpBinding veröffentlicht wird, und eine customBinding (http + binary), für die Metadaten aktiviert sind. Ich habe auch einen mex Endpunkt für http enthalten. Wir verwenden Visual Studio 2008 & VB.NETDie Verwendung eines benutzerdefinierten FaultContract-Objekts, das System.Exception enthält, führt dazu, dass 'Service-Referenz hinzufügen' fehlschlägt.
Erst vor kurzem haben wir festgestellt, dass wir in unseren anderen Projekten keine Service-Referenz zu diesem Service hinzufügen konnten. Alles, was es erzeugen würde, war die erste benutzerdefinierte Ausnahme, die wir durch einen FaultContract einschlossen (tatsächlich gab es nur einen Typ). Wenn ich eine einfache Webreferenz hinzufügen würde, würde es auch richtig funktionieren. Auch die WcfClient.exe hatte keine Probleme beim Laden der Dienste. Nur VS.NET Add Service Reference würde nicht funktionieren.
Im Service erbt diese Ausnahme von Exception und ist als serialisierbar gekennzeichnet. Das ist alles, was du tun sollst, nein?
Wie auch immer, das hat mich verblüfft. Wenn ich den FaultContract für diese benutzerdefinierte Ausnahme entferne, funktioniert alles einwandfrei. Ich kann eine Servicereferenz hinzufügen, kein Problem. Aber gibt es eine Möglichkeit, meine benutzerdefinierten Ausnahmen noch zu haben? Ist das ein bekanntes Problem?
Sie erkennen natürlich, dass die Ausnahme für jede andere Plattform außer .NET sinnlos ist? –
Nein, aber mein Eindruck davon war, dass die Ausnahme von Exception für das WCF-Framework benötigt wurde. Es ist auch etwas, von dem ich annahm, dass es richtig war, weil es immer in der Lage war, die korrekte Proxy-Klasse für die benutzerdefinierte Exception zu erstellen, die von Exception geerbt wurde. – SpoBo