Here is my code:
string url = "https://myOrg.api.crm.dynamics.com";
string apiVersion = "9.1";
string webApiUrl = $"{url}/api/data/v{apiVersion}/";
var authParameters = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(webApiUrl)).Result;
My last line of code is failing with:
The ouput is:
MyAPITest.vshost.exe Error: 0 : 11/05/2019 19:20:17: - AuthenticationParameters: System.ArgumentException: Unauthorized Http Status Code (401) was expected in the response Parameter name: response Exception thrown: 'System.AggregateException' in mscorlib.dll The program '[5556] MyAPITest.vshost.exe' has exited with code -1 (0xffffffff).
For reference, I am attempting to use the Quick Start Guide to connect to the Common Data Service.
EDIT: In looking at the details I am seeing:
Error
The underlying connection was closed: An unexpected error occured on a send.
More detail beneath that error:
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
AuthenticationParameters: System.ArgumentException: Unauthorized Http Status Code (401) was expected in the response
The error is typically because it's lacking valid authentication credentials and the request has not been applied for the target resource.
Also if you don't know, the AuthenticationParameters.CreateFromResourceUrlAsync
API is obsolete, read more there.
With this in mind, I would look into using AuthenticationParameters.CreateFromUrlAsync(Uri) Method in which should be used. It sends a GET request to the url provided with no Authenticate header
. If a 401 Unauthorized is received, this helper will parse the WWW-Authenticate header to retrieve the authority and resource.
Here was the problem, found in the guide:
I am running VS 2015. Once I unchecked this, it worked perfectly.
User contributions licensed under CC BY-SA 3.0