fragen stichworte

IIS 7 WCF Webservices geben 404-Fehler über HTTPS aus

Ich habe einige WCF-Webservices, die unter IIS 7.5 ausgeführt werden und die korrekt auf HTTP-Anforderungen reagieren, jedoch mit 404-Fehlern (Nicht gefunden) reagieren, wenn Methoden mit SSL aufgerufen werden.

Die Bindungen für die Site sind wie folgt:

IIS 7 Site Bindings

Beim Aufruf von http://127.0.0.1:8088/Public/PublicDataService.svc erhalte ich die erwartete Antwort:

You have created a service.

To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax: etc

Auch das Aufrufen einer der Service-Methoden funktioniert. Es gibt eine grundlegende Methode namens CanConnect, die einfach "true"

zurückgibt

http://127.0.0.1:8088/Public/PublicDataService.svc/CanConnect

true

Bei Verwendung von https ist das Ergebnis das Folgende.

https://127.0.0.1/Public/PublicDataService.svc

You have created a service.

To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax:

https://127.0.0.1/Public/PublicDataService.svc/CanConnect

Server Error in '/Public' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL:/Public/PublicDataService.svc/CanConnect

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1055.0

Das hat mich völlig überlistet, wie kann das .svc funktionieren, aber seine internen Methoden geben 404? Um die Dinge noch verwirrender zu machen, funktionierte das ... eigentlich bin ich nicht einmal sicher, wann es aufgehört hat, dh ob es einem Code-Release oder Server-Patches usw. entspricht (

)

Die tatsächliche Konfiguration der Website lautet daher:

Webservices (this is the root of the application/where the Web.Config sits)
- Public (a windows directory, no addition config)

Es gibt eine Reihe anderer Dienste, die direkt unter dem Stamm ausgeführt werden und sowohl unter http als auch unter https einwandfrei funktionieren.

Irgendwelche Ideen, was dies verursachen könnte.

antworten

Es stellt sich heraus, dass es sich einfach um einen Fehler in der Datei web.config handelt.

Diese beiden Antworten zu SO waren die Lösung:

https://stackoverflow.com/a/26581326/1286358

Und umgekehrt

https://stackoverflow.com/a/26539003/1286358

Seltsam, dass es sowohl für http als auch für https einmal gearbeitet hat und dann einfach gestoppt wurde. An anderer Stelle müssen andere Konfigurationsänderungen vorgenommen worden sein.

BEARBEITEN: Tatsächlicher Fix für Vollständigkeit

Folgendes wurde in der web.config von "none" in "Transport"

geändert
<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding>
                <security mode="Transport"/>