2009-11-06 54 views
18

Ho un servizio Web RESTful ospitato in IIS 6.0, sono in grado di navigare il servizio nel browser. Quando sto cercando di accedere allo stesso servizio tramite console di Client App, che mi sta dando il seguente errore:fornito schema URI 'http' non è valido; atteso 'https'

"provided URI scheme'http' is invalid; expected 'https', Parameter name: Via" 

mio WebService web.config ha questa impostazione:

<system.serviceModel> 
<services> 
    <service behaviorConfiguration="ServiceBehavior" name="TestAPI"> 
    <endpoint address="" behaviorConfiguration="RESTFriendly" binding="webHttpBinding" contract="ITestAPI" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service>  
</services> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="RESTFriendly"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

mio L'app client ha App.config da dove sto ottenendo l'indirizzo:

<appSettings> 
<add key="WEBSERVICE" value="URL"/> 

nel metodo Main:

WebChannelFactory<ITestAPI> cf = new WebChannelFactory<IAPI>(baseAddress); 
      WebHttpBinding wb =cf.Endpoint.Binding as WebHttpBinding; 
      wb.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; 
      wb.Security.Mode = WebHttpSecurityMode.Transport; 
      cf.Credentials.UserName.UserName = "usermane"; 
      cf.Credentials.UserName.Password = "password"; 

      ITestAPI channel = cf.CreateChannel(); 
      string msg = channel.TestMethod(); 

Quando si tenta di chiamare TestMethod, mi dà questo errore.

aiuto plz. Grazie in anticipo.

risposta

43

si sta impostando la protezione in modalità, che è HTTPS per il trasporto, con questa linea:

wb.Security.Mode = WebHttpSecurityMode.Transport;

è il valore di un baseAddress HTTP o HTTPS indirizzo?

+1

Il valore è l'indirizzo Http. –

+4

Questo è il problema. Stai specificando che desideri un trasporto sicuro, ma HTTP non è un trasporto sicuro. –

+0

Grazie per questa risposta. –

Problemi correlati