Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The provided URI scheme 'https' is invalid; expected 'http' when calling web service

I am trying to call a SharePoint web service from a CRM workflow using custom C# code. However when I run my code, I get the following error:

The provided URI scheme 'https' is invalid; expected 'http'. Parameter name: via

Here is the offending code:

#region Set up security binding and service endpoint
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Ntlm;
EndpointAddress endpoint = new EndpointAddress(endpointAddress);
#endregion

#region Create the client and supply appropriate credentials
CopySPContents.CopyService.SharepointFileServiceClient client = new CopySPContents.CopyService.SharepointFileServiceClient(binding, endpoint);              
client.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;              
#endregion

#region Call the web service and trace its response
String response = client.CopyFolderContentsAcrossSites(sourceSiteURL, sourceFolderURL, destinationSiteURL, destinationFolderURL);
#endregion

The error gets thrown on the line String response = client.CopyFolderContentsAcrossSites(sourceSiteURL, sourceFolderURL, destinationSiteURL, destinationFolderURL); where the client's method is called.

Thanks for any help,
Scott

like image 958
Scott Avatar asked Aug 15 '13 18:08

Scott


1 Answers

As per the documentation for BasicHttpSecurityMode, TransportCredentialOnly may only be used with HTTP. For HTTPS you must use either Transport or TransportWithMessageCredential.

like image 180
Jim Rhodes Avatar answered Sep 28 '22 11:09

Jim Rhodes