web-dev-qa-db-fra.com

Le schéma d'URI fourni «https» n'est pas valide; «http» attendu lors de l'appel d'un service Web

J'essaie d'appeler un service Web SharePoint à partir d'un flux de travail CRM à l'aide d'un code C # personnalisé. Cependant, lorsque j'exécute mon code, j'obtiens l'erreur suivante:

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

Voici le code incriminé:

#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

L'erreur est renvoyée sur la ligne String response = client.CopyFolderContentsAcrossSites(sourceSiteURL, sourceFolderURL, destinationSiteURL, destinationFolderURL); où la méthode du client est appelée.

Merci pour toute aide,
Scott

14
Scott

Selon la documentation de BasicHttpSecurityMode, TransportCredentialOnly ne peut être utilisé qu'avec HTTP. Pour HTTPS, vous devez utiliser Transport ou TransportWithMessageCredential.

32
Jim Rhodes