1

初投稿なのでよろしくお願いします。

Dynamics 365 (オンライン) でユーザーがアクセスできる組織のリストを取得しようとしています。

この関数は約 50% の確率で機能し、正常に認証され、組織リストを返しますが、ランダムに組織をまったく返しません。

XXX@XXX.onmicrosoft.com の形式のログオンを使用しています。Dynamics 365 自体へのアクセスは問題ありません。

私はすでに組織のエンドポイントを持っており、関数から一貫した結果を得るのに苦労しているだけで、組織サービスを問題なく作成できます。

サービスでのあらゆる種類の最大呼び出し試行を調査し、フィドラーを使用して手がかりのリクエストと応答をトレースしましたが、これまでのところ何もエラーもエラーもありませんでした。

どんな助けでも感謝されるでしょう

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
4

0 に答える 0