Forum Discussion

MilanaAdams's avatar
MilanaAdams
New Member
3 years ago

SoapUI Mock Service

Hello.

System.ArgumentException
The provided URI scheme 'http' is invalid; expected 'https'.
Parameter name: via
   at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
   at System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
   at System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.OnCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, 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 ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.ForceDevelopmentServices.SOAAccessions.AccessionsService.retrieveCommissionAgreement(retrieveCommissionAgreementRequest request) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1284
   at ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.retrieveCommissionAgreement(FilterCriteria Filter) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1290
   at ForceDevelopmentServices.ServiceCode.Common.SOA.Accessions.GetCommissionAgreementDaily(Int32 days) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceCode\Common\SOA\Accessions.cs:line 38
   at ForceDevelopmentServices.ServiceImplementation.SOA.AccessionsData.GetCommissionAgreementDetailDaily(Int32 days, IAccessions soaCall) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceImplementation\SOA\AccessionsData.svc.cs:line 37
   at FDSTest.SOA.AccessionsDataTests.Validates_notEmptyList_whenMockService_GetCommissionAgreementDetailDaily() in C:\Repos\usaf-forcedevelopmentservices\FDSTest\SOA\AccessionsDataTests.cs:line 109

Hello, 

I imported a wsdl into SOAP UI OS.  

I created a mock Service. 

 

When I turn on the mock Service and browse to it, I get a http version of wsdl. 

 

I looked around to find a way to go through HTTPs using this link : https://www.soapui.org/soap-mocking/tips-and-tricks/securing-mockservices-with-ssl/foretagslan-finance.se

 

No issue so far. 

 

With SoapUI and its mock service capability, I could use it as a way to test my application without having to develop a fake service.  

 

So with the create mock Service from SOAP UI, I used the http url provided by SOAPUI.  

 

But with the wsdl, it needs to go through HTTPs only.  

 

While using Visual Studio, here is a part of the app.config for test.

 

 <system.serviceModel>
    <client>
      <endpoint address="http://mymachine:8088/mockAccessionsServiceSOAP" binding="customBinding" bindingConfiguration="CustomSoaBinding" contract="SOAAccessions.AccessionsService" name="AccessionsServiceSOA" />

 

When I leave the app.config alone, I get this type of error:

 

 

System.ArgumentException
The provided URI scheme 'http' is invalid; expected 'https'.
Parameter name: via
   at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
   at System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
   at System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.OnCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
   at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, 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 ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.ForceDevelopmentServices.SOAAccessions.AccessionsService.retrieveCommissionAgreement(retrieveCommissionAgreementRequest request) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1284
   at ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.retrieveCommissionAgreement(FilterCriteria Filter) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1290
   at ForceDevelopmentServices.ServiceCode.Common.SOA.Accessions.GetCommissionAgreementDaily(Int32 days) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceCode\Common\SOA\Accessions.cs:line 38
   at ForceDevelopmentServices.ServiceImplementation.SOA.AccessionsData.GetCommissionAgreementDetailDaily(Int32 days, IAccessions soaCall) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceImplementation\SOA\AccessionsData.svc.cs:line 37
   at FDSTest.SOA.AccessionsDataTests.Validates_notEmptyList_whenMockService_GetCommissionAgreementDetailDaily() in C:\Repos\usaf-forcedevelopmentservices\FDSTest\SOA\AccessionsDataTests.cs:line 109

 

When I added the s at the end of http, I get this error. 

 

 

System.ServiceModel.CommunicationException
An error occurred while making the HTTP request to https://mymachine:8088/mockAccessionsServiceSOAP. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server.
Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
   at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at ForceDevelopmentServices.SOAAccessions.AccessionsService.retrieveCommissionAgreement(retrieveCommissionAgreementRequest request)
   at ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.ForceDevelopmentServices.SOAAccessions.AccessionsService.retrieveCommissionAgreement(retrieveCommissionAgreementRequest request) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1284
   at ForceDevelopmentServices.SOAAccessions.AccessionsServiceClient.retrieveCommissionAgreement(FilterCriteria Filter) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\Service References\SOAAccessions\Reference.cs:line 1290
   at ForceDevelopmentServices.ServiceCode.Common.SOA.Accessions.GetCommissionAgreementDaily(Int32 days) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceCode\Common\SOA\Accessions.cs:line 38
   at ForceDevelopmentServices.ServiceImplementation.SOA.AccessionsData.GetCommissionAgreementDetailDaily(Int32 days, IAccessions soaCall) in C:\Repos\usaf-forcedevelopmentservices\ForceDevelopmentServices\ServiceImplementation\SOA\AccessionsData.svc.cs:line 37
   at FDSTest.SOA.AccessionsDataTests.Validates_notEmptyList_whenMockService_GetCommissionAgreementDetailDaily() in C:\Repos\usaf-forcedevelopmentservices\FDSTest\SOA\AccessionsDataTests.cs:line 109

System.Net.WebException
The underlying connection was closed: An unexpected error occurred on a send.
   at System.Net.HttpWebRequest.GetResponse()
   at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

System.IO.IOException
The handshake failed due to an unexpected packet format.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.ConnectStream.WriteHeaders(Boolean async)

 

 I then change the binding from the custombinding to a basicHttpBinding, this error appear most promising considering I could see some of the data from my mock service. 

 

+		$exception	{"The content type application/soap+xml;charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:v2=\"http://mil.dod.af.A1.personnel.dataservices.accessions/v2.0\" xmlns:mil=\"http://mil.dod.af.A1.personnel.dataservices.cleartext\">\n   <soap:Header/>\n   <soap:Body>\n      <v2:retrieveCommissionAgreementResponse>\n         <!--Zero or more repetitions:-->\n         <CommisionAgreement Id=\"123\">\n            <!--Optional:-->\n            <v2:Adn>\n               <!--Optional:-->\n               <mil:Code>123</mil:Code>\n               <!--Optional:-->\n               <mil:Value>456</mil:Value>\n            </v2:Adn>\n            <!--Optional:-->\n            <v2:CompCategory>\n               <!--Optional:-->\n               <mil:Code>123</mil:Code>\n               <!--Optional:-->\n               <mil:Value>456</mil:Value>\n            </v2:CompCategory>\n            <!--Optional:-->\n            <v2:EffectiveBeginDate>2001-01-10</v2:EffectiveBeginDate>\n            <!--Optional:-->\n            <v2:SourceOfCommission>\n               <!--Optional:-->\n       '."}	System.ServiceModel.ProtocolException

I do not have the option to update the original wsdl as it was provided to me as a service we consume for use. 
Thank you.

No RepliesBe the first to reply