2010-11-24 4 views
0

Ich verwende .NET 4.0, WCF und Wshttp-Bindung, um einige WS-Methoden zu erstellen. Grund für die Verwendung der wsHttp-Bindung ist, dass ich Unterstützung für die Authentifizierung, Verschlüsselung und Signierung benötige.WCF, wsHttpBinding und WSP: Richtlinie

Wenn ich einen solchen Dienst erstellen und in WSDL suchen, sehe ich dort ist Wsp: Richtlinie Tag dort. Gibt es eine Möglichkeit, die WCF-Konfiguration irgendwie zu beeinflussen und dieses Tag zu entfernen?

Wie ich es verstehe, ist es möglich, Verschlüsselung und Unterzeichnung ohne dieses Tag zu haben.

Antwort

2

Sie können generierte WSDL durch Ihre eigene WSDL ersetzen (serviceMetadata - externalMetadataLocation). Nur so kann ich sicher sein, dass Sie das erreichen können, was Sie wollen, denn Sie schreiben WSDL von Grund auf neu. Es gibt Erweiterungspunkte für die Änderung von generierten WSDL und Richtlinien - IWsdlExportExtension und IPolicyExportExtension, aber ich denke, dass Sie nur neue Elemente zu WSDL hinzufügen können, aber keine Elemente entfernen, die von API-Features hinzugefügt wurden (integrierte Sicherheit usw.).

Btw. IMHO ist es sehr schlechte Idee, Richtlinien zu entfernen, da WSDL den Dienst beschreiben sollte und es die einzige Beschreibung sein sollte, die Entwickler zum Erstellen einer Client-Anwendung haben müssen. Wenn Sie Richtlinien entfernen, deckt Ihre WSDL nur Teilinformationen über Ihren Dienst ab und wird nutzlos. Auf jeden Fall bremsen Sie die Kompatibilität mit Proxy-Generierungswerkzeugen. Ich hatte question über dieses Thema bezogen.

+0

Hey Ladislav, 10x für die Antwort. Der Grund dafür ist, dass mein WS von einigen Java-Systemen verwendet wird, die wegen dieses Tags Probleme haben können. Ich behalte Ihre Bemerkung im Hinterkopf und ty, dieses Tag als Teil meiner WSDL-Definition zu behalten. Eine verwandte Frage: Kann ich das externalMetadataLocation-Attribut verwenden, um den Pfad zu XSD-Definitionen zu definieren, oder nur für wsdl? – buhtla

+0

XSDs werden von WSDL referenziert, so dass Sie ihren Pfad nicht in der Konfiguration angeben müssen. Sie werden es in WSDL angeben. –

+0

interessant (in Bezug auf), dass es jetzt 2015 und ich habe immer noch Java-Verbraucher mit Problemen wegen dieses Tags. Wenn dies bei einer so großen Anzahl von Kunden nicht möglich ist, würde ich mir wünschen, dass MS eine Möglichkeit bietet, sie zu entfernen. – hal9000

Verwandte Themen