The recent code sample I published on Connecting to CRM Online 2011 Web Services using SOAP Requests Only was well received by many people however a few developers from Europe & Asia mentioned that they were getting (500) Internal Server Error when they were trying out the code. I then realized that CRM 2011 Web Service URLs had a different format in Europe & Asia which helped me to find the culprit.
I signed up for a CRMOnline European trial account and putting the SDK sample under Fiddler inspection revealed that it was a minor change within one of the XML fragments. That’s it, seriously!
Obviously crm4 is used in our European datacenter and crm5 is used in our Asian datacenter so I had to modify the code to use the appropriate URN address.
// Create the URN address of the format urn:crm:dynamics.com.
// Replace crm with crm4 for Europe & crm5 for Asia.
string URNAddress = "urn:crm:dynamics.com";
if (CRMUrl.IndexOf("crm4.dynamics.com") != -1)
URNAddress = "urn:crm4:dynamics.com";
if (CRMUrl.IndexOf("crm5.dynamics.com") != -1)
URNAddress = "urn:crm5:dynamics.com";
You can download the updated code sample here:
All is well again!