0

CRM Dynamics DB にアクセスするために、次のコードを実行しています。

using (OrganizationServiceProxy proxy 
  = new OrganizationServiceProxy(organizationUri, null, credentials, null))
{
  const String request = @"
    <fetch mapping ='logical'>
      <entity name = 'account'>
        <attribute name = 'name'/>
      </entity>
    </fetch>";

    FetchExpression expression = new FetchExpression(request);
    EntityCollection result = proxy.RetrieveMultiple(expression);
    ...
}

私はそれをかなり確信してorganizationUrlおりcredentials、正しいです。このウォークスルーによると、他の 2 つはnullこの単純なケースに設定できます。

問題は、最後の行に到達するとresult、次のように表示さExceptionれることです:

System.ArgumentNullException が処理されませんでした

Message=Value を null にすることはできません。

パラメーター名: CurrentServiceEndpoint

何を忘れましたか? この問題を解決するにはどうすればよいですか?

編集:

System.ArgumentNullException が処理されませんでした

HResult=-2147467261

Message=Value を null にすることはできません。

パラメーター名: CurrentServiceEndpoint

ソース = Microsoft.Xrm.Sdk

ParamName=現在のサービス エンドポイント

スタックトレース:

Microsoft.Xrm.Sdk.ClientExceptionHelper.ThrowIfNull (オブジェクト パラメーター、文字列名) で

Microsoft.Xrm.Sdk.Client.ServiceConfiguration`1.CreateChannelFactory (ClientCredentials clientCredentials) で

Microsoft.Xrm.Sdk.Client.OrganizationServiceConfiguration.CreateChannelFactory (ClientCredentials clientCredentials) で

Microsoft.Xrm.Sdk.Client.ServiceProxy`1.get_ChannelFactory() で

Microsoft.Xrm.Sdk.Client.ServiceProxy`1.CreateNewServiceChannel() で

Microsoft.Xrm.Sdk.Client.ServiceProxy`1.ValidateAuthentication() で

Microsoft.Xrm.Sdk.Client.ServiceProxy`1.get_ServiceChannel() で

Microsoft.Xrm.Sdk.Client.ServiceContextInitializer 1.Initialize(ServiceProxy1 プロキシで)

Microsoft.Xrm.Sdk.Client.ServiceContextInitializer 1..ctor(ServiceProxy1 プロキシで)

Microsoft.Xrm.Sdk.Client.OrganizationServiceContextInitializer..ctor (OrganizationServiceProxy プロキシ) で

Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore (QueryBase クエリ) で

Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultiple (QueryBase クエリ) で

C:\Users\Viltersten\documents\Software\Projects\CRM_Server_Accessor\Program.cs:line 60 の CRM_Server_Accessor.Program.Main(String[] args) で

System.AppDomain._nExecuteAssembly (RuntimeAssembly アセンブリ、文字列 [] 引数) で

System.AppDomain.ExecuteAssembly (文字列 assemblyFile、証拠 assemblySecurity、文字列 [] 引数) で

Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() で

System.Threading.ThreadHelper.ThreadStart_Context (オブジェクトの状態) で

System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext、ContextCallback コールバック、オブジェクトの状態、ブール値の preserveSyncCtx) で

System.Threading.ExecutionContext.Run (ExecutionContext executionContext、ContextCallback コールバック、オブジェクトの状態、ブール値の preserveSyncCtx) で

System.Threading.ExecutionContext.Run (ExecutionContext executionContext、ContextCallback コールバック、オブジェクトの状態) で

System.Threading.ThreadHelper.ThreadStart() で

内部例外:

4

1 に答える 1

1

プロジェクトに、組織の組織サービスを指す を追加Service Referenceします。

URL は次のようになります。http://yourCRMserver/yourOrganization/XRMServices/2011/Organization.svc

それに名前を付けて、言ってOrganizationServiceください。

次に、コードで次のように進めます。

using (OrganizationService.OrganizationServiceClient client = new OrganizationService.OrganizationServiceClient())
{
    const String request = "<Your FetchXml query goes here>";
    FetchExpression expression = new FetchExpression(request);
    EntityCollection result = client.RetrieveMultiple(expression);
    //...
}

この MSDN の記事では、オンラインを含む認証に関する優れたサンプル コードが提供されています。

于 2012-09-12T12:20:30.503 に答える