Posts

Showing posts from September, 2009

Issues after Re-Naming MS CRM Servers computer/machine name

Currently I faced a scenario where the machine on which MS CRM 4.0 was installed was required to be renamed on LAN. My deployment had the SQL Server installed on another machine on LAN. After changing the MSCRM Server machine name, MS CRM browser stopped working and started showing error “SqlException: Login failed for user [Domain Name]\[New Machine Name] .” This error comes when the MS CRM server related entries in registry and database (that refer to the server name) have not yet been changed to the new server name This problem could be solved by 'Repairing’ the MS CRM 4.0 installation on the machine after renaming it. Go to the Control Panel -> Add or Remove programs-> Microsoft Dynamics CRM Server. Repair the installation. Repair installation internally performs the following actions: a. In the registry, ServerURL key value at HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/MSCRM is updated with the new machine name (example: the value would be like “http:// :5555/MSCRMServices”

Working with MSCRM 4.0 Reports in IFD deployment

Recently for a project requirement I had to deploy MSCRM 4.0 on an IFD server. Everything else seems to work properly except the Reports. The reports were running good on on-premise configurations for the same organization. This issue was same for Custom reports as well as the out-of-box reports by MS CRM. Its then I read that this is a common issue with IFD deployment. To resolve this, the deployment must be running the Microsoft Dynamics CRM Connector for Microsoft SQL Server Reporting Services . The SRSDataConnector for MS CRM 4.0 comes with the installation files for MS CRM 4.0 and is located on the installation CD: “ drive:\Server\i386 \srsDataConnector ” folder. Run the “ setupsrsdataconnector.exe ” executable in the mentioned folder and you are done with it! How does it work? - When a Microsoft Dynamics CRM report is run, Microsoft SQL Server Reporting Services Viewer requests the report and data from the remote Microsoft SQL Server Reporting Services computer. To access the re

Initializing distinct XAMLs included in a single XAP

So I had a situation where I had to load multiple charts on my custom page default.aspx within Microsoft Dynamics CRM. These charts rendered different reporting data after fetching it using the MS CRM webservices. I used silverlight visifire charts for each of my reports. Instead of creating a different silverlight application for each of my reports, I instead created different XAMLs for each of them and compiled a single XAP. Well, this is a well tried and tested approach used in any silverlight application or any aspx application using Silverlight controls which involves multiple XAMLs compiled in a single XAP. These are the steps I used: 1. Created a Silverlight application that contained multiple XAMLs each one including a different report (i.e. a different visifire chart) and compiled it as one "SLDashboardPOC.xap". 2. For each of the reports to be rendered, I embedded the compiled Silverlight XAP control multiple times in my default.aspx as follows: <asp:ScriptManage

Windows Prompt for an IFD Deployment

This blog will explain why Microsoft Dynamics CRM prompts for Windows Credentials when you log on to your development environment (configured for IFD ) using the server's IP address or the Host file configured URL (such as http://contoso.crm.grapecity.org). This is basically determined by MS CRM by reading the registry value of the key [HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRM]- IfdInternalNetworkAddress. In reality, Microsoft Dynamics CRM will look at the IP address of the incoming request and match it against the internal range of the registry key specified. If the request is in the internal range of the registry key, it will give you a "Windows experience." If the IP address is external, it gives an "IFD experience." This registry can be modified to switch between the windows and the IFD experiences (and this is supported :)). You will need to set the value for the "IfdInternalNetworkAddress" registry key in order to change the internal subnet of th

Using CRM Services to create or update records in large numbers

Recently, I implemented a plug in code which invoked auto creation of records from a contacts list (rather marketing lists based on MS CRM contacts) for my custom entity. The code worked well but it hanged whenever I considered a marketing list of more than 3000 contacts. The error logged read: Only one usage of each socket address (protocol/network address/port) is normally permitted. Basically, the error was thrown when the creation process exhausted the limit of socket connections allowed by the IIS and the SDK still polled for another connection and consequentially timed out after a certain number of records were created. A quick workaround for this is to change the following entries in the registry: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort to 65534AndHKLM\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay to be 30 The link : http://dmcrm.blogspot.com/2008/07/updating-records-in-mass-via-sdk.html also mentions a resolution of this by us

IFD Implementation for custom web pages and Anonymous Access

When deploying my custom web pages for an IFD deployment, I got a FileLoadException (Exception from HRESULT: 0x80131401) on accessing the page in the browser. Basically, this issue arose since anonymous access was somehow disabled for the “ISV/CustomPages” application in IIS while by default it is enabled for the Microsoft Dynamics CRM website. This implied that my custom web site was using Windows NT Authentication, while the Microsoft Dynamics CRM Website was enabled for anonymous access. Hence, I got “Loading this assembly would produce a different grant set from other instances” on accessing any of my web pages from within MS CRM. Simply turning on anonymous access for my custom website did the trick and rendered all my custom web pages correctly :)