0

I have asked the same question at http://social.microsoft.com/Forums/en-US/crmdevelopment/thread/d5d00302-8f7b-4efc-873b-c54b3e29749d but didn't get an answer. So, I will give another try at stackoverflow.

I was running the example code from the crm 2011 training kit.

 var creds = new ClientCredentials();
 var dsp = new DiscoveryServiceProxy( dinfo, creds);
 dsp.Authenticate();
 var orgRequest = new RetrieveOrganizationRequest();
 var response = dsp.Execute(orgRequest);
 var orgResponse = response as RetrieveOrganizationsResponse;
 if (orgResponse != null)
 comboOrgs.ItemsSource = orgResponse.Details;

At the line of var response = dsp.Execute(orgRequest), I got the FaltException`1, the detailed message is as follows

System.ServiceModel.FaultException`1 was unhandled
 Message=organizationName
 Source=mscorlib
 Action=http://schemas.microsoft.com/xrm/2011/Contracts/Discovery/IDiscoveryService/ExecuteDiscoveryServiceFaultFault
 StackTrace:
 Server stack trace: 
 at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
 at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
 at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
 at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
 Exception rethrown at [0]: 
 at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
 at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
 at Microsoft.Xrm.Sdk.Discovery.IDiscoveryService.Execute(DiscoveryRequest request)
 at Microsoft.Xrm.Sdk.Client.DiscoveryServiceProxy.Execute(DiscoveryRequest request)

I was able to access the Discovery.svc file using browser. So the server url should be correct. Is this an authentication problem?

Wei Ma
  • 2,865
  • 5
  • 41
  • 69

1 Answers1

1

Is this for Microsoft CRM Online or on-premise? For Online, I know you would want to use something along the lines of what is found in the SDK -

// Connect to the Discovery service. 
// The using statement assures that the service proxy will be properly disposed.
using (DiscoveryServiceProxy _serviceProxy = new DiscoveryServiceProxy(serverConfig.DiscoveryUri,
                                                    serverConfig.HomeRealmUri,
                                                    serverConfig.Credentials,
                                                    serverConfig.DeviceCredentials))
{
    // You can choose to use the interface instead of the proxy.
    IDiscoveryService service = _serviceProxy;

    #region RetrieveOrganizations Message

    // Retrieve details about all organizations discoverable via the
    // Discovery service.
    RetrieveOrganizationsRequest orgsRequest =
        new RetrieveOrganizationsRequest()
        {
            AccessType = EndpointAccessType.Default,
            Release = OrganizationRelease.Current
        };
    RetrieveOrganizationsResponse organizations =
        (RetrieveOrganizationsResponse)service.Execute(orgsRequest);
}

There are overloads for the DiscoveryServiceProxy class but if you provide some more details on what you are trying to connect to, I think it will narrow it down.

cchamberlain
  • 14,693
  • 6
  • 52
  • 67
  • It was an on-premise deployment. I tried the code in SDK and it worked well. I an now working with the SDK sample code and try to find the exactly place causing the error. – Wei Ma Jun 16 '11 at 16:18
  • AccessType and Release parameters of the Request was the problem for me. Thanks! – BeardinaSuit Jan 22 '12 at 23:54