WCF Service Configuration Seltsames Verhalten - Die request-message muss geschützt werden
Ich bin auf .NET 4.0 habe ich einen wcf-service, die sich um zwei Verträge, einen mit Schutz-Ebene und eine ohne Schutz. Beide geben Sie an, in der Handlung und in der ReplyAction die " * " - Wert.
Nun, wenn ich konfigurieren, dass dieser service in einem Web-Site-Projekt funktioniert alles, aber wenn ich bei der Konfiguration den gleichen service innerhalb einer Web-Anwendung-Projekt, wenn ich versuche zu sehen, die service-Seite im browser für den Standard-Endpunkt, erhalte ich die Fehlermeldung "Die Anfrage-Nachricht muss geschützt werden, Dies ist erforderlich, durch eine operation des Vertrages ('IContractSigned','http://myservice/contracts'). Der Schutz muss bereitgestellt werden, durch die Bindung ('"BasicHttpBinding"','http://tempuri.org/'). "
Sowohl die Web-Site-Projekt und die Web-Anwendung-Projekt hat die gleiche web.config.
Nun versuche ich investingate, aber es ist unmöglich zu finden, eine einfache Lösung oder Diskussion.
Irgendeine Idee?
Warum die Art des Projekts beeinflussen auf diese Weise die Richtigkeit der config?
Vielen Dank im Voraus
InformationsquelleAutor Hoghweed | 2011-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den EncryptAndSign Schutzniveau für service-Verträge verlangt, dass die Bindung bietet eine Möglichkeit enrypting und singen, d.h. die Bindung muss gesichert sein.
Vielleicht ist Ihr service verwendet transport level security, die sich auf IIS zum sichern des Kanals mit einem server-Zertifikate? Der Unterschied zwischen web-site-Bereitstellung und der Bereitstellung von Webanwendungen kann die IIS-Fähigkeit zum sichern des Kanals mit einem server-Zertifikat.
Wenn Sie verwenden die message-Modus Sicherheit, Ihre Dienstleistung muss erklären, welches Zertifikat zu verwenden, und es sollte keinen Unterschied machen, wie der service bereitgestellt wird.
InformationsquelleAutor Arne Joris
Ich kämpfte mit derselben Ausnahme und fand diese:
So, wenn Sie nicht angeben, ProtectionLevel in ServiceContract-Attribut, WCF definieren ProtectionLevel-basierend auf Ihrer Website.config. Wenn Sie zum Beispiel Ws2007 und "BasicHttpBinding", "BasicHttpBinding" wird scheitern, mit Ihrer Ausnahme. Dann haben Sie 3 Optionen:
Set Schutz-level-Vertrag, ausgesetzt ist, durch BasicHttpBinding als diese:
[ServiceContract(ProtectionLevel = ProtectionLevel.None)]
InformationsquelleAutor ptkvsk