#c# #authentication #azure-functions #dynamics-crm #access-token
#c# #аутентификацию #azure-функции #dynamics-crm #токен доступа
Вопрос:
Я использую OrganizationWebProxyClient для доступа к службе организации для CRM. Я получаю сообщение об ошибке, которое не имеет никакого смысла.
В моем коде нет ничего, что имело бы отношение к «_address». Я думал, что сообщение об ошибке относится к моему URL.
Конечная точка = Адрес= ошибка CS0103: имя ‘_address’ не существует в текущем контексте, ClientCredentials = {System.ServiceModel.Описание.ClientCredentials}
var clientId = "YOUR_CLIENT_ID";
var clientSecret = "YOUR_CLIENT_SECRET";
var organizationUrl = "YOUR_ORGANIZATION_URL";
var tenantId = "YOUR_TENANT_ID";
//this specific scope means that application will default to what is defined in the application registration rather than using dynamic scopes
List<string> scopes = new List<string>();
scopes.Add("https://graph.microsoft.com/.default");
var cca = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority(authority)
.WithRedirectUri(organizationUrl)
.WithClientSecret(clientSecret)
.Build();
// Retrieve an access token for Microsoft Graph (gets a fresh token if needed).
var authResult = cca
.AcquireTokenForClient(scopes)
.ExecuteAsync();
var tokenKey = authResult.Result.AccessToken;
OrganizationWebProxyClient sdkService = null;
try
{
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
sdkService = new OrganizationWebProxyClient(GetServiceUrl(organizationUrl), new TimeSpan(0, 10, 0), false);
sdkService.HeaderToken = tokenKey;
}
catch (Exception ex)
{
log.LogInformation("There is issue while generating the token " ex.Message);
}
return sdkService
Ответ №1:
При сбое, если я проверяю значения свойств клиента («sdkService») перед вызовом операционного контракта (веб-метод), это переводит клиент в состояние сбоя, а затем вызов завершается ошибкой.
Таким образом, вы не можете проверять свойства клиента перед любым вызовом веб-службы.
Комментарии:
1. это странное решение, но оно работает! Спасибо!
2. Похоже на квантовую механику… оно ломается, только если вы посмотрите на него.
Ответ №2:
Вы увидите эту ошибку при попытке использовать текущий CRM / CDS / DV SDK с .NET Core по сравнению с .NET Framework, поскольку это несовместимо. Используйте фреймворк или альфа-версию SDK отhttps://github.com/microsoft/PowerPlatform-CdsServiceClient который совместим с ядром.