Configuration file for CRM 3.0 Callouts


Hi,

In callouts in CRM 3.0, for providing configuration information we used to create our own config file.

The naming convention that we used to follow was

AssemblyName.dll.Config

And we used to deploy it at the same location as callout i.e. server/bin/assembly

The structure of the config file used to be

<?xml version=”1.0″ encoding=”utf-8″ ?>
<config>
<crmurl>http://servername:5555/mscrmservices/2006/crmservice.asmx</crmurl&gt;
<loglocation>C:\CrmLog\PluginLog.txt</loglocation>
</config>

To read the config values in the callout we used to have this following code

string assemblyLocation=System.Reflection.Assembly.GetExecutingAssembly().Location;
string crmUrl=GetConfigValue(assemblyLocation,”crmurl”);

The GetConfigValue function

private static string GetConfigValue(string AssemblyName,string KeyValue)
{
string Filename=AssemblyName+”.config”;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Filename);
XmlNode crmNode = xmlDoc.SelectSingleNode(“//”+KeyValue);
string tagValue=crmNode.InnerText.ToString();
return tagValue;

}

Actually I was working with callouts after so many months, so thought i should save the above information for future reference!!

Bye…

“SQL Server timeout expired” in CRM


Hi,

I was occasionally getting this error while trying to open pages within CRM.

This post by helped me solve the issue

http://billoncrmtech.blogspot.com/2008/10/sql-timeouts-in-crm-generic-sql-error.html

Key to change (or add if not there) of type  DWORD

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\OLEDBTimeout

Bye..

Advertisements

“System.IO.FileLoadException: Access is denied” error while developing Callout


Hi,

I got this error while developing a post update callout for CRM 3.0.

The reason for this could be because the Network Service account under which CRM runs may not have appropriate rights for that.

One possible solution is to right click the assembly -> Properties –> Security tab –> Add Network Service account and give it appropriate rights.

That’s it..

Creating dependent picklist in CRM 4


Hi,

I never thought creating a dependent picklist in CRM 4.0 could be that easy.

Just download this tool

Microsoft Dynamics CRM Demonstration Tools (for Microsoft Dynamics CRM 4.0)

http://www.microsoft.com/downloads/details.aspx?FamilyID=634508DC-1762-40D6-B745-B3BDE05D7012&displaylang=en

After connecting, click on the Dependent Picklist on the left navigation bar,

Select an entity, and primary and related picklist,

Select an option in primary picklist and check the boxes for the related picklist options and click on map,

same way map other options as well.

Once done, click on get scripts button, we’ll get the onload and onchange code which we need to just copy paste in the form !

That’s it…

Nice post – Developing plug-in for CRM 4


Hi,

While browsing found this wonderful articl, do check it

http://blogs.msdn.com/crm/archive/2008/03/07/developing-plug-ins-for-crm-4-0.aspx

Bye..

CRM Error in custom page : Exception of type ‘System.Web.HttpUnhandledException’ was thrown.


I was getting the error while trying to run my custom aspx deployed within microsoft crm using sitemap !

If  I was giving the absolute path within the site map

<SubArea Id=“nav_home“ ResourceId=“Homepage_Home“

Title=“Activities Overview“

Icon=“/_imgs/area/18_home.gif“

Url=http://localhost:5555/ISV/BHC/ActivitiesOverview.aspx

Client=“Web“

Description=“Activities Overview“

PassParams=“1“ ></

SubArea>

i.e.

Url=“http://localhost:5555/ISV/BHC/ActivitiesOverview.aspx&#8221;

The page was working fine!

But on giving the relative path

Url =“/ISV/BHC/ActivitiesOverview.aspx” i was getting the error.

One thing that changes is the url, when we give relative path it appends the organization name in the url. Url becomes something like this

http://localhost:5555/orgname/isv/bhc/activitiesoverview.aspx

But then there were few other pages that were working fine, and i was getting this error on only one page.

After spending some time on that, i realized that this particular line of code within the page was the reason for the error

connectionString =

ConfigurationManager.ConnectionStrings[“MSCRMConnectionString”].ConnectionString;

i.e. reading from the config file.

Now this information was within the web.config of the custom application deployed within CRM’s isv folder, but now with orgname appended it was trying to look for the same information in the web.config of the CRM itself ( crmweb/web.config )

It shows that “any custom pages added to the navigation using site map has to go through the virtual path provider” because of that it was not able to get the web.config of the custom application.

In case of custom pages used within isv.config and iframe, this doesn’t happen (i.e. it doesn’t pass throught virtual path provider so no orgname is appended to them )

Virtual path provider is the concept introduced in asp.net 2.0 and it is implemented in SharePoint as well, where we have certain pages called application pages within layouts folder of the 12 hive, they remain same for all the web application created in sharepoint i.e. same copy of the page is used for serving n number of web application created in SharePoint.

Bye ..