web-dev-qa-db-ja.com

指定されたURIスキーム「https」は無効です。 Webサービスを呼び出すときに「http」が必要です

カスタムC#コードを使用してCRMワークフローからSharePoint Webサービスを呼び出そうとしています。ただし、コードを実行すると、次のエラーが表示されます。

_The provided URI scheme 'https' is invalid; expected 'http'. Parameter name: via_

問題のあるコードは次のとおりです。

_#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
_

クライアントのメソッドが呼び出されるString response = client.CopyFolderContentsAcrossSites(sourceSiteURL, sourceFolderURL, destinationSiteURL, destinationFolderURL);行でエラーがスローされます。

助けてくれてありがとう、
スコット

14
Scott

BasicHttpSecurityModeのドキュメントに従って、TransportCredentialOnlyはHTTPでのみ使用できます。 HTTPSの場合、TransportまたはTransportWithMessageCredentialのいずれかを使用する必要があります。

32
Jim Rhodes