Ho un cliente Sapone ServiceStack
base, che opera correttamente per HTTP, ma quando provo a utilizzare HTTPS mi dà questo erroreServiceStack Sapone 1.2 HTTPS client
ServiceStack.WebServiceException: The provided URI scheme 'https' is invalid; ex
pected 'http'.
Parameter name: via ---> System.ArgumentException: The provided URI scheme 'http
s' is invalid; expected 'http'.
Parameter name: via
at System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelPar
ameters(EndpointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannelCore(Endp
ointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(En
dpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOv
erRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(En
dpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type chan
nelType, EndpointAddress address, Uri via)
at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address
, Uri via)
at System.ServiceModel.ClientBase`1.CreateChannel()
at System.ServiceModel.ClientBase`1.CreateChannelInternal()
at System.ServiceModel.ClientBase`1.get_Channel()
at ServiceStack.WcfServiceClient.Send(Message message)
at ServiceStack.WcfServiceClient.Send[T](Object request)
--- End of inner exception stack trace ---
at ServiceStack.WcfServiceClient.Send[T](Object request)
at ElectronicServiceInterface.ESIClient.Login()
Sto usando un certificato auto firmato, ma io Sono in grado di usare curl per chiamare con successo il mio servizio Soap. Questo per me indica che il problema è alla fine del cliente.
Il mio codice va lungo le linee di
using (var client = new Soap12ServiceClient(Uri))
{
var request = new MyRequestObject { Username = Username, Password = Password };
var response = client.Send<MyResponseObject>(request);
}
Quanto sopra mostra esempio di richiesta/risposta utilizzo di classe DTO.
Cosa devo fare per farlo funzionare con HTTPS senza utilizzare i file di configurazione, solo il codice?
si prega di aggiungere il codice/configurazione del servizio di hosting. – silver
@silver Non c'è alcuna configurazione. Ho aggiunto un po 'più di codice, che mostra almeno la chiamata 'send' che attiva l'eccezione. Il servizio di sapone in sé non è un servizio basato su ServiceStack (solo client), ma a prescindere dal codice non arriva a colpire effettivamente il server dall'altra parte. –