Wie konfiguriere ich einen einzelnen WCF-Dienst für mehrere HTTP- und HTTPS-Endpunkte?
Ich versuche, einen SINGLE WCF-Dienst für die Entwicklungsumgebung (HTTP-Schema) und den SAME-Dienst für die Produktionsumgebung (HTTPS-Schema) zur Verfügung zu stellen. Wenn ich die beiden Https-Endpunkte (die mit dem Suffix "Https" versehenen) entferne, funktioniert dies in der Entwicklungsumgebung. Ebenso funktioniert es in der Produktionsumgebung, wenn ich nur die zwei HTTP-Endpunkte entferne. Ich möchte, wenn möglich, alle vier Endpunkte in der web.config haben.
Meine Endpunkte sind unten definiert:
<endpoint address="/Web"
behaviorConfiguration="AjaxBehavior"
binding="wsHttpBinding"
bindingConfiguration="web"
name="Web"
contract="Service" />
<endpoint address="/Custom"
binding="customBinding"
bindingConfiguration="custom"
name="Custom"
contract="Service" />
<endpoint
address="/WebHttps"
behaviorConfiguration="AjaxBehavior"
binding="wsHttpBinding"
bindingConfiguration="webHttps"
name="WebHttps"
contract="Service" />
<endpoint address="/CustomHttps"
binding="customBinding"
bindingConfiguration="customHttps"
name="CustomHttps"
contract="Service" />
Bearbeitet: Ich bearbeite meine Frage, um den Fehler und die Bindungsabschnitte (unten) hinzuzufügen. Entschuldigung für die neue Länge der Frage.
Der Fehler lautet: "Es konnte keine Basisadresse gefunden werden, die dem Schema http für den Endpunkt mit der Bindung WebHttpBinding entspricht. Registrierte Basisadressschemata sind [https]."
Zusätzlich ist der Produktionsstandort auf "SSL erforderlich" eingestellt. Das kann man nicht ändern.
Die Bindungskonfigurationen sind:
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="AjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="custom">
<textMessageEncoding>
<readerQuotas maxDepth="7000000" maxStringContentLength="7000000"
maxArrayLength="7000000" maxBytesPerRead="7000000"
maxNameTableCharCount="7000000" />
</textMessageEncoding>
<httpTransport maxBufferPoolSize="7000000" maxReceivedMessageSize="7000000"
maxBufferSize="7000000" />
</binding>
<binding name="customHttps">
<textMessageEncoding>
<readerQuotas maxDepth="7000000" maxStringContentLength="7000000"
maxArrayLength="7000000" maxBytesPerRead="7000000"
maxNameTableCharCount="7000000" />
</textMessageEncoding>
<httpsTransport maxBufferPoolSize="7000000" maxReceivedMessageSize="7000000"
maxBufferSize="7000000" />
</binding>
</customBinding>
<webHttpBinding>
<binding name="web" maxBufferPoolSize="70000000"
maxReceivedMessageSize="70000000">
<readerQuotas maxDepth="70000000" maxStringContentLength="70000000"
maxArrayLength="70000000" maxBytesPerRead="70000000"
maxNameTableCharCount="70000000" />
<security mode="None" />
</binding>
<binding name="webHttps" maxBufferPoolSize="70000000"
maxReceivedMessageSize="70000000">
<readerQuotas maxDepth="70000000" maxStringContentLength="70000000"
maxArrayLength="70000000" maxBytesPerRead="70000000"
maxNameTableCharCount="70000000" />
<security mode="Transport" />
</binding>
</webHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
Irgendwelche Ideen