Answered by:
Test the disponibility of an organisation in c#

Question
-
Hi!
I work on a WCF application and I would like to write a function to test the availability of an organization through a wcf webservice and return a message if it has available or not. I'm new in the software development.
Could you help me about this by show me a sample code who do that?
- Edited by CRM_USER1988 Monday, December 7, 2015 3:47 PM
Monday, December 7, 2015 3:44 PM
Answers
-
It depends if you want to check if the organization is enabled or exists, or if you instead just want to check if it will respond to a request (e.g. checking something like network issues).
If you just want to check if it is enabled/available you could just use the discovery service and a RetrieveOrganizationsRequest as per this URL https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.discovery.retrieveorganizationsrequest.aspx. Just check that it returns your organization.
If it's something more fundamental you're checking for, like network / connectivity issues, then you could simply run a WhoAmIRequest on an Organization Service Proxy to make sure you can get a response from the service (https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.whoamirequest.aspx).
If you're unsure on how to connect to your organization you might want to review the SDK to see how the Organization Service and Discovery Service web services work.
https://msdn.microsoft.com/en-gb/library/gg328180.aspx
https://msdn.microsoft.com/en-us/library/gg328029.aspx
Conor
- Edited by Conor Gallagher (simple trees) Monday, December 7, 2015 4:08 PM
- Marked as answer by CRM_USER1988 Monday, December 7, 2015 6:00 PM
Monday, December 7, 2015 4:07 PM
All replies
-
It depends if you want to check if the organization is enabled or exists, or if you instead just want to check if it will respond to a request (e.g. checking something like network issues).
If you just want to check if it is enabled/available you could just use the discovery service and a RetrieveOrganizationsRequest as per this URL https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.discovery.retrieveorganizationsrequest.aspx. Just check that it returns your organization.
If it's something more fundamental you're checking for, like network / connectivity issues, then you could simply run a WhoAmIRequest on an Organization Service Proxy to make sure you can get a response from the service (https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.whoamirequest.aspx).
If you're unsure on how to connect to your organization you might want to review the SDK to see how the Organization Service and Discovery Service web services work.
https://msdn.microsoft.com/en-gb/library/gg328180.aspx
https://msdn.microsoft.com/en-us/library/gg328029.aspx
Conor
- Edited by Conor Gallagher (simple trees) Monday, December 7, 2015 4:08 PM
- Marked as answer by CRM_USER1988 Monday, December 7, 2015 6:00 PM
Monday, December 7, 2015 4:07 PM -
Thanks for your reply.
But there are certains parts of the samples I don't understand. I'm new in development.
Could you write an example for me? What I want is to check if it will respond to a request (network issues).
Thanks!
- Edited by CRM_USER1988 Monday, December 7, 2015 5:59 PM
Monday, December 7, 2015 5:58 PM -
A very simple connect and test a request could look something like this:
var cred = new ClientCredentials(); cred.Windows.ClientCredential.Domain = "[Domain]"; cred.Windows.ClientCredential.UserName = "[UserName]"; cred.Windows.ClientCredential.Password = "[Password]"; Uri crmOrgUri = new Uri("http://[your server]/[organization name]/XRMServices/2011/Organization.svc"); _serviceProxy = new OrganizationServiceProxy(crmOrgUri, null, cred, null); try { var response = _serviceProxy.Execute(new WhoAmIRequest()); } catch (Exception ex) { // A problem occurred! }
Where you need to replace the domain, username, password, server and organization name to those relevant to you.
Hope that helps!
Conor.
Tuesday, December 8, 2015 1:50 PM