Dynamics 365 DiscoveryServiceProxy иногда не возвращает результатов
Первый пост, так что будьте добры.
Я пытаюсь вернуть список организаций, к которым у пользователя есть доступ в Dynamics 365 (онлайн).
Эта функция работает примерно в 50% случаев, она хорошо аутентифицируется и возвращает список организаций, но случайным образом не возвращает никаких организаций вообще.
Я использую вход в систему в формате XXX@XXX.onmicrosoft.com, доступ к самой динамике 365 в порядке.
У меня уже есть конечные точки организации, и я могу просто создать службу организации, просто изо всех сил пытаясь получить согласованные результаты от функции.
Я изучил все виды попыток максимального вызова в сервисе, использовал fiddler для отслеживания запросов и ответов на любые подсказки, но пока ничего, и никаких ошибок.
Любая помощь будет оценена
Public Shared Function retrieveOrganizations(conn As Connectiondata) As List(Of orgDetails)
' New Org List
Dim orgList As New List(Of orgDetails)
' Accepts all certs
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
' Create a management service
Dim serviceManagement As IServiceManagement(Of IDiscoveryService) = ServiceConfigurationFactory.CreateManagement(Of IDiscoveryService)(New Uri("https://disco.crm11.dynamics.com/XRMServices/2011/Discovery.svc"))
' Find what type of endpoint we need to use
Dim endpointType As AuthenticationProviderType = serviceManagement.AuthenticationType
' Set the credentials based on the auth type and conn details
Dim authCredentials As AuthenticationCredentials = GetCredentials(serviceManagement, endpointType, conn)
'Create discovery service proxy
Dim discoService As New DiscoveryServiceProxy(serviceManagement, authCredentials.ClientCredentials)
' Authenticate the service
discoService.Authenticate()
'Retrieve Organization details
Dim orgRequest As New RetrieveOrganizationsRequest()
' Cast the response
Dim allOrgs As RetrieveOrganizationsResponse = DirectCast(discoService.Execute(orgRequest), RetrieveOrganizationsResponse)
'Print all organization(s)(instances) endpoint.
For Each orgdetail As OrganizationDetail In allOrgs.Details
' Create a new object
orgList.Add(New orgDetails With {.friendlyName = orgdetail.FriendlyName, .ID = orgdetail.OrganizationId.ToString})
Next
' Return the list
Return orgList
End Function