Tuesday, February 9, 2010

Microsoft.Crm.WebServices doesn't exist for custom web page

Ever got this error while trying to access a custom web page from your virtual directory hosted in Microsoft Dynamics CRM/ISV folder:

Microsoft.Crm.WebServices.Crm2007.MultipleOrganizationSoapHeaderAuthenticationProvider, Microsoft.Crm.WebServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' doesn't exist

This typically also appears while accessing you custom web page for the first time on a 64 bit CRM box.

The reason for the error is that CRM adds 2 HttpModules (MapOrg and CrmAuthentication) to web.config in the root of the CRM website. The CrmAuthentication HttpModule is in the microsoft.crm.webservices.dll assembly, which is not in the path of the custom virtual directory.

There are two solutions to this. Either:

1. Add microsoft.crm.webservices.dll to the bin folder of your web site and then add it to the global assembly cache. Run iisreset.
OR
2. Remove the CrmAuthentication HttpModule from the virtual directory. To remove the HttpModule, add the following to the web.config in the custom virtual directory (within the system.web element).

Option#1 has always worked for me :). Hope this helps!!

No comments:

Post a Comment