WCF-REST-Dienste generieren Metadaten in der WSDL
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem andere Nicht-REST-Dienste betroffen sein können, da Windows Communication Foundation (WCF) keine Metadaten für REST-Dienste unterstützt.
Ursprüngliche Produktversion: Windows Communication Foundation
Ursprüngliche KB-Nummer: 2019903
Problembeschreibung
Wenn Sie einen REST-Dienst in WCF verwenden, generiert der REST-Dienst WSDL (Web Service Description Language) für die zugeordneten Verträge. Wcf unterstützt jedoch keine Metadaten für REST-Dienste. Dies kann Probleme mit anderen Nicht-REST-Diensten verursachen, die im selben Dienst gehostet werden. Beispielsweise können einige Eigenschaften und Methoden dupliziert werden.
Ursache
Obwohl WCF keine Metadaten für REST-Dienste unterstützt, macht WCF die WSDL weiterhin verfügbar. Dies kann jedoch Probleme verursachen, wenn konflikte oder duplizierte Metadaten vorhanden sind, die die anderen Endpunkte im Dienst beschreiben.
Lösung
Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
- Hosten Sie die REST-Dienste und die anderen Dienste als separate Dienste.
- Bearbeiten Sie die WSDL manuell, um die REST-Dienstdaten zu entfernen. Legen Sie dann die Eigenschaft fest,
ServiceMetadataBehavior.ExternalMetadataLocationum Clients an eine separate URL umzuleiten, die auf diese WSDL verweist.