Home > CRM - TroubleShooting > Value cannot be null – Instanciando OrganizationServiceProxy

Value cannot be null – Instanciando OrganizationServiceProxy


Cenário:

Meu primeiro post sobre Microsoft CRM! Smiley de boca aberta

Nas últimas semanas venho trabalhando em análise e melhoria de performance de alguns serviços que fazem integração entre uma aplicação legada e o Microsoft CRM 2015, usando IFD.

Os serviços estão deveras lentos. Nesse processo de análise estamos montando aplicações de testes paralelas aos serviços… e nessas aplicações estamos simulando maneiras diferentes de instanciar o serviço de comunicação com o CRM.

Para isso estou utilizando o SDK do CRM como base de apoio aos testes: http://go.microsoft.com/fwlink/?LinkID=512122.

ERRO:

Value cannot be null.

SOLUÇÃO:

Na correria… acabei copiando e colando uma url que deveria ser diferente!

No SDK do CRM, há um tipo de autenticação se usar os “Helpers” que existem no SDK. Nesse exemplo ele pede para instanciar assim:

 

#region Class Level Members

// To get discovery service address and organization unique name,

// Sign in to your CRM org and click Settings, Customization, Developer Resources.

// On Developer Resource page, find the discovery service address under Service Endpoints and organization unique name under Your Organization Information.

private String _discoveryServiceAddress = "https://MyCompany/XRMServices/2011/Discovery.svc";

private String _organizationUniqueName = "OrganizationUniqueName";

// Provide your user name and password.

private String _userName = "username@mydomain.com";

private String _password = "password";

// Provide domain name for the On-Premises org.

private String _domain = "mydomain";

#endregion Class Level Members

 

E aí ao trocar a url, eu copiei e colei uma url errada… coloquei a url “Organization.svc” ao invés da url correta “Discovery.svc”.

Ao colocar a url errada e tentar instanciar o OrganizationServiceProxy, dá o erro mencionado acima nesse método abaixo:

 

/// <summary>

/// Discovers the organizations that the calling user belongs to.

/// </summary>

/// <param name="service">A Discovery service proxy instance.</param>

/// <returns>Array containing detailed information on each organization that

/// the user belongs to.</returns>

public OrganizationDetailCollection DiscoverOrganizations(

IDiscoveryService service)

{

if (service == null) throw new ArgumentNullException("service");

RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();

RetrieveOrganizationsResponse orgResponse =

(RetrieveOrganizationsResponse)service.Execute(orgRequest);

return orgResponse.Details;

}

 

Após colocar a URL correta “Discovery.svc” , tudo funcionou perfeitamente.

Abraço!

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: