WebHttpBinding mit Http und Https

10

Ich versuche, https & amp; http für die Website. Die Website hat .svc-Dateien, die als REST-Service fungieren und von JavaScript aufgerufen werden.

Meine Konfiguration:

%Vor%

Browsen Ссылка gibt

Es konnte keine Basisadresse gefunden werden, die mit dem Schema http für den Endpunkt mit bindender WebHttpBinding übereinstimmt. Registrierte Basisadressenschemata sind [https]

Browsen Ссылка gibt

Konnte keine Basisadresse finden, die mit dem Schema https für den Endpunkt mit bindender WebHttpBinding übereinstimmt. Registrierte Basisadressenschemata sind [http]

Wenn ich irgendeinen Endpunkt entferne, funktioniert es. Beispiel für das Entfernen des Endpunkts, der mit bindingConfiguration="httpWebBinding" konfiguriert wurde, funktioniert für HTTPS,

Wie kann ich mit HTTP und HTTPS arbeiten? Ab sofort kann ich entweder http oder https verwenden, indem ich einen Endpunkt entferne.

Bezeichnet Wie kann ich die WCF-Dienste-Konfiguration für http und https in einer web.config kombinieren? und Wie richten Sie HTTP und HTTPS WCF 4 RESTful Dienste ein?

  

Hinweis : In IIS sind es zwei Websites, die auf http und eine andere auf http hören   https. Beide teilen denselben Code im physischen Ordner

UPDATE: Ab sofort entfernte ich Endpunkte und es funktioniert. Aber meine Sorge ist Entfernen von Endpoing konfiguriert mit Verhalten Konfiguration sieht nicht gut Lösung für mich.

Dies funktioniert sowohl für http & amp; https

%Vor%     
Billa 12.04.2016, 15:41
quelle

4 Antworten

4

Ich habe Ihr Szenario neu erstellt und mithilfe Ihrer web.config Endpunkte für meinen Testservice konfiguriert. Ihre Konfiguration ist in Ordnung und funktioniert einwandfrei. Der Teil, der für Sie nicht funktioniert, ist wahrscheinlich Ihre https-Konfiguration in IIS. Stellen Sie sicher, dass Sie den https-Zugriff auf Ihren Dienst aktiviert haben. Wenn Sie es mit IISExpress aus Visual Studio testen, klicken Sie mit der linken Maustaste auf Ihr Projekt und wählen Sie im Eigenschaftsfenster (Ansicht - & gt; Eigenschaftenfenster) für SSL Enabled = True.

    
Lesmian 15.04.2016 11:28
quelle
0

Wie @Lesmian in seiner Antwort darauf hingewiesen hat, liegt das Problem in Ihrer IIS-Konfiguration. Genauer gesagt in:

  

Hinweis: In IIS gibt es zwei Websites, die auf http und eine andere auf https gehört werden. Beide teilen denselben Code im physischen Ordner

Der Grund dafür ist, dass IIS mit Endpunkten in einem Schema, das nicht unterstützt wird, nicht umgehen kann.

Sie haben zwei Sites, von denen einer HTTP-Bindung, aber keine HTTPS und die andere HTTPS, aber keine HTTP-Bindung besitzt.

Wenn Sie also zur URL navigieren, leitet IIS Sie zur Website http (http: // surprise!), liest web.config und erkennt, dass Endpunkt registriert ist (wird von der Site nicht unterstützt) und löst die Exception aus, die besagt, dass auf der -fähigen Site keine Schema -Schema-Unterstützung vorhanden ist.

Wenn Sie zur URL Bereich navigieren, ist die Situation ähnlich: IIS erlaubt Ihnen nicht, den Bereich Endpunkt auf Bereich zu verwenden -nur Website.

Um das Problem zu beheben, verwenden Sie besser eine einzelne Site mit zwei Bindungen.

Eine andere (und komplexere) Option wäre die Verwendung verschiedener web.configs für Sites: Richten Sie separate Sites ein (zeigen Sie auf separate Ordner) und verwenden Sie die Transformationstools publishing und web.config von Visual Studio

    
morincer 20.04.2016 14:48
quelle
0

Wenn Sie Ihre Endpunktkonfigurationen wie folgt aktualisieren:

%Vor%

Ich habe einen ähnlichen Tanz mit einem Stempelsystem gemacht, und das war meine Lösung. Hoffe, es funktioniert auch für dich.

    
Jake 20.04.2016 18:10
quelle
0

Fügen Sie diesen Code hinzu.

%Vor%     
hyunchul kim 24.08.2017 07:19
quelle