2016-08-24 3 views
0

Hallo Ich habe versucht alle Lösungen im Stack über Flow zur Verfügung gestellt. Ich bekomme "Das bereitgestellte URI-Schema 'https' ist ungültig; erwartet 'http'. Parametername: via" error. Der Service ist in IIS7 gut und ich erhalte diesen Fehler, wenn ich versuche, diesen Dienst zu konsumieren. Bitte sehen Sie sich meine Konfiguration und Client-Konfiguration des WCF-Dienstes an.Das angegebene URI-Schema 'https' ist ungültig. erwartet 'http'. Parametername - Sofortige Hilfe benötigt

<?xml version="1.0"?> 
    <configuration> 
    <system.web> 
    <compilation targetFramework="4.0"/> 
    <httpRuntime/> 
    </system.web> 
    <system.serviceModel> 
    <serviceHostingEnvironment > 
    <serviceActivations> 
    <add factory="System.ServiceModel.Activation.ServiceHostFactory"   relativeAddress="./CARetriever.svc" service="CARetrieverInterface.CARetriever"/> 
     </serviceActivations> 
    </serviceHostingEnvironment> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyTesting"> 
      <!-- Other options would go here --> 
      <useRequestHeadersForMetadataAddress> 
      <defaultPorts> 
       <add scheme="https" port="443" /> 
      </defaultPorts> 
      </useRequestHeadersForMetadataAddress> 
      <serviceMetadata httpsGetEnabled="True"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <services> 
     <service name="CARetrieverInterface.CARetriever" behaviorConfiguration="MyTesting"> 
     <endpoint address="https://sspumptest.dhr.state.ga.us/testcode/CARetriever.svc" binding="basicHttpBinding" contract="CARetrieverInterface.ICARetriever" bindingConfiguration="secureHttpBinding"> 
      <identity> 
      <dns value="sspumptest.dhr.state.ga.us" /> 
      </identity> 
     </endpoint> 
     <!--<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />--> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="secureHttpBinding"> 
      <security mode="Transport"> 
      <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> 
      </security> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    </system.serviceModel> 
</configuration> 

My client configuration is given below. 

<?xml version="1.0"?> 

<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 

    <system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_ICARetriever">    
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://sspumptest.dhr.state.ga.us/testcode/CARetriever.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICARetriever" 
      contract="CARetrieverRef.ICARetriever" name="BasicHttpBinding_ICARetriever" /> 
    </client> 
    </system.serviceModel> 
</configuration> 

Antwort

0

Ich habe Cleint Konfiguration Bindings Abschnitt gleich Service-Konfiguration geändert. Ich habe die Client-Konfiguration wie unten beschrieben geändert.

 <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_ICARetriever"> 
       <security mode="Transport">  
       </security>       
       </binding> 
      </basicHttpBinding> 
     </bindings> 

Sobald ich dies tat bekam ich Zugriff verweigert Ausnahme. Dann änderte ich die App-Pool-Identität von NetworkService zu LocalSystem. Und es funktionierte wie ein Zauber, ich bekam die Antwort zurück. Ich habe versucht, NetworkService wieder auf Defaultappoolidentity im App-Pool zu ändern, dann funktionierte es auch. Aber wenn ich aus der Client-Konfiguration entferne, gibt es einen Fehler wie "das bereitgestellte URI-Schema 'https' ist ungültig; erwartet 'http'." Lass es mich wissen, wenn ihr andere Gedanken dazu habt.

Verwandte Themen