endpoints

___ qstntxt ___

Was ich versuche, ist, einen SINGLE WCF-Dienst zu bekommen, der in der Entwicklungsumgebung arbeitet, die das HTTP-Schema ist, und auch, dass der SAME-Dienst in der Produktionsumgebung arbeitet, die das HTTPS-Schema ist. Wenn ich die zwei Https-Endpunkte entferne (die mit dem Suffix "Https"), funktioniert es in der Entwicklungsumgebung; Ebenso, wenn ich nur die beiden Http-Endpunkte entferne, funktioniert es in der Produktionsumgebung. Ich hätte gerne alle vier Endpunkte in der web.config, wenn möglich.

Meine Endpunkte sind wie folgt definiert:

%Vor%

Bearbeitet: Ich bearbeite meine Frage, um den Fehler hinzuzufügen, den ich erhalte, und die verbindlichen Abschnitte (unten). Entschuldigung für die neue Länge der Frage.

Der Fehler ist: "Es konnte keine Basisadresse gefunden werden, die mit dem Schema http für den Endpunkt mit bindendem WebHttpBinding übereinstimmt. Registrierte Basisadressenschemas sind [https]."

Außerdem ist die Produktionsumgebung auf "SSL erforderlich" eingestellt. Das kann sich nicht ändern.

Die Bindungskonfigurationen sind:

%Vor%

Irgendwelche Ideen?

    
___ answer3824602 ___

Befolgen Sie diese Schritte -

1) Schreiben Sie zwei Endpunkte für den Dienst, einen für http und einen anderen für https.

%Vor%

2) Aktivieren Sie sowohl httpGetEnabled="True" httpsGetEnabled="true" in serviceBehaviors.

%Vor%

3) Schreiben Sie zwei Bindungskonfigurationen für http und https. Für http geben Sie security mode="None" und für https geben Sie mode="Transport".

%Vor%

Überprüfen Sie diesen Link

    
___ qstnhdr ___ Wie wird ein einzelner WCF-Dienst für mehrere HTTP- und HTTPS-Endpunkte konfiguriert? ___ answer32218582 ___

Es gibt viele Gründe, warum Sie den Fehler erhalten können:

%Vor%

Die meisten Gründe stammen aus den Einstellungen von Web.config, aber möglicherweise von IIS. Ich hatte die gleichen Probleme, wenn Sie Endpunkte mit HTTP und HTTPS Bindungen verteidigt haben, müssen Sie http und HTTPS Bindung für die Website erstellen, die Sie in IIS- & gt; Site- & gt; -Bindungen erstellt haben, andernfalls erhalten Sie diesen Fehler.

    
___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123wcf ___ Windows Communication Foundation ist ein Teil von .NET Framework, das ein einheitliches Programmiermodell für die schnelle Erstellung von serviceorientierten Anwendungen bereitstellt. ___ answer3824599 ___

Dies ist ein Grund, warum Sie eine Bindung über die Konfiguration einrichten können: Um verschiedene Einstellungen in verschiedenen Umgebungen verwenden zu können.

Die einfachste Lösung für Sie ist es, makecert zu erstellen Testzertifikat für Ihre Entwicklungsumgebung und verwenden Sie HTTPS sowohl auf der Entwicklungs- als auch auf der Produktionsmaschine.

Eine weitere Lösung besteht darin, ein Installationspaket (msi) zu erstellen und admin während der Installation die Enpoint-Einstellungen ändern zu lassen.

Bearbeiten:

Ihre Anforderung, alle vier Endpunkte auf beiden Computern zu haben, ist erreichbar, aber in diesem Fall wird Ihr Dienst auch in der Produktion über HTTP verfügbar gemacht, und jeder, der über WSDL für den Dienst verfügt, wird darüber Bescheid wissen.

    
___ tag123webservices ___ Ein "Web-Service" ist ein Softwaresystem, das Interoperabilität zwischen Maschine und Maschine über das World Wide Web unterstützt. ___ answer3920381 ___

Wenn Sie Visual Studio 2010 und Web Application Project Deployment verwenden, können Sie mithilfe der Transformations-Syntax Web.config die bindingConfiguration Ihres Service-Endpunkts auf eine HTTPS-aktivierte Bindungskonfiguration verweisen.

Ich fand heraus, dass ich nur zwei Elemente in der Datei Web.config ersetzen musste. Das bindingConfiguration-Attribut des Endpunkts und httpsGetEnabled von serviceMetadata sollten auf "true" gesetzt werden.

Hier ist die Web.config in ihrer Standardkonfiguration (debug):

%Vor%

Hier ist die Web.Release.config-Transformationsdatei

%Vor%

Hier sehen meine Bindungen aus, aber sie sind ziemlich Standard. Beachten Sie die Namen, die oben verwendet werden:

%Vor%

Hier finden Sie einen Link zu weiteren Web.config-Transformationen:

Ссылка

    
___ tag123endpunkte ___ hilf uns dieses Wiki zu bearbeiten ___ answer4323862 ___

Das standardmäßige Empfangszeitlimit beträgt 10 Minuten. Daher wird der WCF-Client getrennt, nachdem die Leerlaufzeit diese Begrenzung überschritten hat. Was kann ich tun, wenn die Verbindung am Leben erhalten werden soll?

Lösung # 1:

Der Server stellt eine Dummy-Operation für Client-Aufrufe bereit, damit er nicht im Leerlauf läuft.

Lösung # 2:

Aktivieren Sie reliableSession und setzen Sie receiveTimeout und inactivityTimeout sowohl auf dem Client als auch auf dem Server auf "unendlich". Das Konfigurations-Snippet könnte wie folgt aussehen:

%Vor%     
___
5
Antworten

Wie wird ein einzelner WCF-Dienst für mehrere HTTP- und HTTPS-Endpunkte konfiguriert?

Was ich versuche, ist, einen SINGLE WCF-Dienst zu bekommen, der in der Entwicklungsumgebung arbeitet, die das HTTP-Schema ist, und auch, dass der SAME-Dienst in der Produktionsumgebung arbeitet, die das HTTPS-Schema ist. Wenn ich die zwei Https-...
29.09.2010, 17:52