Ich verwende VSTS 2008 + C# +. NET 3.0. Ich verwende einen selbst gehosteten WCF-Dienst. Wenn die folgende Anweisung ausgeführt wird, gibt es den folgenden "binding not found" Fehler. Ich habe meine ganze app.config-Datei gepostet, irgendwelche Ideen, was ist falsch?Mex Bindungsfehler in WCF
ServiceHost host = new ServiceHost(typeof(MyWCFService));
Fehlermeldung:
kann nicht eine Basisadresse finden, die mit der Bindung MetadataExchangeHttpBinding Schema http für den Endpunkt übereinstimmt. Registrierte Basis Adressschemas sind [https].
Voll app.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="MyBinding"
closeTimeout="00:00:10"
openTimeout="00:00:20"
receiveTimeout="00:00:30"
sendTimeout="00:00:40"
bypassProxyOnLocal="false"
transactionFlow="false"
hostNameComparisonMode="WeakWildcard"
maxReceivedMessageSize="100000000"
messageEncoding="Mtom"
proxyAddress="http://foo/bar"
textEncoding="utf-16"
useDefaultWebProxy="false">
<reliableSession ordered="false"
inactivityTimeout="00:02:00"
enabled="true" />
<security mode="Transport">
<transport clientCredentialType="Digest"
proxyCredentialType="None"
realm="someRealm" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="MyWCFService"
behaviorConfiguration="mexServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="https://localhost:9090/MyService"/>
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="MyBinding" contract="IMyService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mexServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
Ist es möglich, IMetadataExchange sowohl für HTTP und HTTPS als separate Endpunkte zu haben? Was sollten sie ansprechen? –
Meine Frage war über http: und https, nicht über net.tcp Protokoll. –
@MichaelFreigeid: Entschuldigung - falsch gelesen. Aber das gleiche gilt: Sie sollten in der Lage sein, eine zweite Basisadresse für "http: //" zu definieren und diese für den http mex-Endpunkt zu verwenden. –