Erhalte Metadaten aus einem webHttpBinding-Endpunkt

8

Mit einem Verweis auf meine vorherige Frage , würde Ich mag zu wissen, wie würde ich Informationen von einem WCF-Dienst von einer Client-Anwendung extrahiert zu wissen, welche Methoden / Arten ausgesetzt sind, wenn der Dienst nur einen Endpunkt setzt das webHttpBinding verwendet?

Zusammenfassend habe ich in meiner vorherigen Frage erfahren, dass ein Endpunkt, der webHttpBinding verwendet, nicht in der generierten WSDL verfügbar gemacht wird, weil es ein JSON-Endpunkt wäre und nicht kompatibel ist.

    
decyclone 14.06.2010, 19:14
quelle

2 Antworten

10

WebHttpBinding ist eine REST-basierte Bindung - REST stellt nicht Metadaten wie WSDL / XSD im Gegensatz zu SOAP zur Verfügung.

Derzeit können die Metadaten nicht aus einem REST-Endpunkt extrahiert werden. Es gibt einige Bemühungen, ein ähnliches Konstrukt für REST zu erstellen, genannt WADL (Web Application Description Language) - aber das ist nicht annähernd standardisiert noch.

Vorerst müssen Sie mit REST-Endpunkten entweder selbst herausfinden, oder Sie benötigen eine Dokumentation, die vom Dienstanbieter z. eine statische HTML-Seite oder etwas.

.NET 4 stellt eine Ebene einer automatisch generierten Hilfeseite zur Verfügung - siehe diesen Blogbeitrag oder die MSDN-Dokumentation für weitere Informationen. Aber es ist noch lange nicht so formalisiert und maschineninterpretierbar wie WSDL / XSD.

    
marc_s 14.06.2010, 19:36
quelle
0

Ich frage mich, warum die REST-Beispiele Ihnen sagen, dass Sie überhaupt einen MEX-Endpunkt aufdecken sollen. Es wird nicht benötigt und hier ist, wie man es sauber entfernt:

  1. Entfernen Sie den MEX-Endpunkt aus dem Dienstbereich der Konfigurationsdatei.

  2. Entfernen Sie die Zeile mit den aktivierten Service-Metadaten im Abschnitt Service-Verhalten der Konfigurationsdatei.

  3. Bearbeiten Sie das Visual Studio-Projekt (vorausgesetzt, es handelt sich um eine WCF-Dienstbibliothek), und entfernen Sie die Zeile:

    & lt; StartArgumente & gt; / client: "WcfTestClient.exe" & lt; / StartArgumente & gt;

Wenn Sie andere Nicht-Rest-Dienste haben, werden Sie die letzten 2 Teile, die vorhanden sind, lassen wollen. Sie müssen den WCF-Client entfernen, wenn Sie MEX deaktivieren. Andernfalls wird er beim Debuggen eine Fehlermeldung erhalten, wenn er keine Dienste im Projekt aufzählen kann (unabhängig davon, ob sie nützliche Metadaten haben oder nicht).

    
Tony Wall 14.06.2012 11:28
quelle

Tags und Links