<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>India Dynamics CRM Team Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/crmindia/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/crmindia/feed.xml</link>
    <description>News and views from the India Dynamics CRM Team</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:21:47 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Legacy Feature check and Custom Code Validation Tool Demos for Upgrade to CRM 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/legacy-feature-check-and-custom-code-validation-tool-demos-for-upgrade-to-crm-2013</link>
      <pubDate>Fri, 20 Sep 2013 11:19:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2013/09/20/legacy-feature-check-and-custom-code-validation-tool-demos-for-upgrade-to-crm-2013/</guid>
      <description><![CDATA[Are my customizations compatible with upcoming release of Dynamics CRM?
This is one of the common...]]></description>
      <content:encoded><![CDATA[<p><span class="topicHead">Are my customizations compatible with upcoming release of Dynamics CRM?</span></p>
<p>This is one of the common question we support teams anticipate from many of CRM Online and On-Premise customers. We all know Fall&rsquo;13 update is around the corner and may of the CRM Online customers have received email notification on upgrade schedule as part of customer drive upgrade program. Here is the article that lists changes in this upcoming release those may affect your organization post upgrade. With CRM 2013 there are tools provided to evaluate customizations to find items that won&rsquo;t/may not work post upgrade to CRM 2013. These are available for consumption in two variants:</p>
<ul>
<li>Custom Code Validation Tool</li>
<li>Legacy Feature Check Tool</li>
</ul>
<p><span class="topicHead">Here is a short walk through on what and how to use these tools.</span></p>
<p><strong>Microsoft Dynamics CRM 2013 Custom Code Validation Tool</strong> is designed to scan client side scripts (onLoad, onChange, onSave events) to detect code pieces using unsupported methods. The tool is basically a solution that can be imported in a CRM 2011 organization and is available for download. CRM 2013 Custom Code Validation Tool is built on top of similar tool provided earlier for CRM 2011. This a document describing 2011 version of tool. Here we have a short screen recording demonstration on how to use this tool:</p>
<p><iframe src="https://www.youtube.com/embed/xOSGhfeN1p0" frameborder="0" width="640" height="480"> </iframe></p>
<p>Once the codpieces/scripts are identified using CRM 2013 Custom Code Validation Tool, next steps would be to change those scripts to use methods supported in CRM 2013 or Fall&rsquo;13 update. Below are links to additional resource which details on how to fix the code:</p>
<ul>
<li>Check your JavaScript code to prepare for your upgrade (&ldquo;How can I fix my code?&rdquo; Section) <a href="https://blogs.msdn.com/b/crm/archive/2013/08/23/check-your-javascript-code-to-prepare-for-your-upgrade.aspx"> https://blogs.msdn.com/b/crm/archive/2013/08/23/check-your-javascript-code-to-prepare-for-your-upgrade.aspx</a></li>
<li>Resolve Breaking Script Issues When Upgrading Microsoft Dynamics CRM <a href="https://blogs.msdn.com/b/crm/archive/2012/05/29/resolve-breaking-script-issues-when-upgrading-to-the-next-release-of-microsoft-dynamics-crm.aspx"> https://blogs.msdn.com/b/crm/archive/2012/05/29/resolve-breaking-script-issues-when-upgrading-to-the-next-release-of-microsoft-dynamics-crm.aspx</a></li>
</ul>
<p><strong>Legacy Feature Check Tool</strong> is designed for CRM On-premise customers to scan a CRM 2011 organization for unsupported customization on server side. Below are the customization those are not supported for CRM 2013.</p>
<ul>
<li>The 2007 service endpoint - Extensions that use the 2007 endpoint will not be supported and may not work in CRM 2013.</li>
<li>ISV folder support for custom web applications</li>
<li>Microsoft Dynamics CRM 4.0 plug-ins</li>
<li>Microsoft Dynamics CRM 4.0 custom workflow activities</li>
</ul>
<p>Legacy Feature Check Tool is safe to run on production deployments. However, it is recommended that you run the tool during non-business hours to avoid any unexpected behaviours. Legacy Feature Check Tool not only scans through CRM deployment/organizations but is also capable of scanning through IIS logs of CRM website to report external calls to 2007 service end points. However, it requires that IIS log format is set to &ldquo;W3C&rdquo; and the field &ldquo;URI Stem (cs-uri-stem)&rdquo; is selected.</p>
<p>Here we have a short screen recording demonstration on how to use this tool:</p>
<p><iframe src="https://www.youtube.com/embed/zikQU9ZWSTk" frameborder="0" width="640" height="480"> </iframe></p>
<p>Legacy Feature Check Tool is available <a href="https://go.microsoft.com/fwlink/p/?LinkID=309565"> here</a> and <a href="https://msdn.microsoft.com/en-us/library/dn281891.aspx">this</a> is the link to document that provides more details on customizations those are unsupported for CRM 2013.</p>
<p>Cheers, <br /> <strong>Dynamics CRM India Support Team</strong></p>
<p><strong>Credits:</strong><br /> Mervyn Rodrigues<br /> Bhavesh Shastri<br /> Apurv Ghai</p>]]></content:encoded>
    </item>
    <item>
      <title>You have signed in with a user ID that cannot log into CRM. Contact your administrator to make sure that you have a valid CRM Online user account.</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/you-have-signed-in-with-a-user-id-that-cannot-log-into-crm-contact-your-administrator-to-make-sure-that-you-have-a-valid-crm-online-user-account</link>
      <pubDate>Tue, 13 Aug 2013 17:26:06 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2013/08/13/you-have-signed-in-with-a-user-id-that-cannot-log-into-crm-contact-your-administrator-to-make-sure-that-you-have-a-valid-crm-online-user-account/</guid>
      <description><![CDATA[Today we are going to talk about the error received by a user when logging into CRM and how to...]]></description>
      <content:encoded><![CDATA[<p>Today we are going to talk about the error received by a user when logging into CRM and how to overcome this error.</p>
<p>User (tester two) tries to login to Microsoft Online Portal so he can access CRM online When he enters the credentials at https://portal.microsoftonline.com/</p>
<p>The following error is thrown:</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/8625.login1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/8625.login1.png" alt="" border="0" /></p>
<p>The error thrown is &ldquo;You have signed in with a user ID that cannot log into CRM. Contact your administrator to make sure that you have a valid CRM Online user account.&rdquo;</p>
<p>This is because there is an instance security group for this instance and the user is not part of the security group <em>An instance security group can be set up by the following steps Go to MOP &ndash; Service Settings &ndash; Dynamics CRM &ndash; Edit Settings &ndash; Instance Security Group &ndash; Click the search Icon next to this field and select the security group.</em> Any security group available within the MOP can be used to control access to a CRM instance. If a security group is not associated with a CRM instance, all users with a CRM license will be created as users in the instance. If a security group is associated with an instance, only users with CRM licenses that are members of the security group will be created as users in the CRM instance. Purpose of this Instance Security group is to provision and manage multiple CRM instances when they have a single CRM subscription. This allows the flexibility to deploy segregated instances of CRM for testing, development and production.</p>
<p>&nbsp;</p>
<p>So in this scenario we chose the security group as Login Group for the instance of CRM</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/0844.login2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/0844.login2.png" alt="" border="0" /></p>
<p>The different security group option available for any instance is in the screen below:</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/7752.login3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/7752.login3.png" alt="" border="0" /></p>
<p>If you login to CRM as the administrator and Navigate to the list of disabled users you can find this user</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/7853.login4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/7853.login4.png" alt="" border="0" /></p>
<p>To overcome this error we need to add the user to the Instance Security Group.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/0763.login5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/0763.login5.png" alt="" border="0" /></p>
<p>Note: System security groups, distribution groups, and mail-enabled security groups cannot be edited. Once we add the user to this Instance security group Login Group he can login fine and access CRM</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/7635.login6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/7635.login6.png" alt="" border="0" /></p>
<p>Hope this would resolve your issues</p>
<p>Cheers,<br /> Sudhir Nory</p>]]></content:encoded>
    </item>
    <item>
      <title>What happens when a CRM server is disabled or enabled from CRM Deployment Manager? (CRM 2011 Vs. CRM 4.0)</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/what-happens-when-a-crm-server-is-disabled-or-enabled-from-crm-deployment-manager-crm-2011-vs-crm-4-0</link>
      <pubDate>Sun, 02 Jun 2013 00:24:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2013/06/02/what-happens-when-a-crm-server-is-disabled-or-enabled-from-crm-deployment-manager-crm-2011-vs-crm-4-0/</guid>
      <description><![CDATA[In CRM 4.0
CRM Website is stopped and CRM Async service is stopped (startup type remains unchanged)...]]></description>
      <content:encoded><![CDATA[<h2 class="topicHead">In CRM 4.0</h2>
<p>CRM Website is stopped and CRM Async service is stopped (startup type remains unchanged) and enabling a disabled server starts the CRM website and CRM Async service. When in disabled state if web site and CRM Async starts up as part of reboot or manual intervention, given CRM server will be reported enabled in Deployment Manager. Either CRM website or CRM Async service faces any issues and gets into a stalled or not running state, given CRM server would be reported disabled in Deployment Manager. In other words, CRM server status reported in Deployment Manager is checked, reported on the fly when administrator navigates to Servers or click Refresh being on Servers node.</p>
<h2 class="topicHead">In CRM 2011</h2>
<p>Disabling the server manually from Deployment Manager shows below warning message clearly stating what services are being affected in the background:<br /> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/0654.1-Disable.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/0654.1_2D00_Disable.png" alt="" border="0" /></p>
<p><br /> CRM Website is stopped <br /> Following service are stopped and disabled: <br /> CRM Unzip service, <br /> CRM Async service, <br /> CRM Async service (maintenance), <br /> CRM Sandbox processing service.<br /> <br /> Server State flag in server table in MSCRM_CONFIG dB is changed to disabled &lsquo;0&rsquo;.<br /> Enabling a CRM server does exact reverse action. However, changing the CRM website or CRM services status doesn&rsquo;t change the status of CRM server. i.e. &ndash; if CRM website and CRM services are started manually when server is in disabled state, server remains in disabled state by the virtue of status flag in SQL database.</p>
<p>Cheers, <br /> <a href="https://in.linkedin.com/pub/bhavesh-shastri/15/621/878">Bhavesh Shastri</a><br /> Support Escalation Engineer</p>]]></content:encoded>
    </item>
    <item>
      <title>CRM 2011 Add-in causes Outlook to crash when used on Citrix XenDesktop environment</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/crm-2011-add-in-causes-outlook-to-crash-when-used-on-citrix-xendesktop-environment</link>
      <pubDate>Sat, 01 Jun 2013 22:34:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2013/06/01/crm-2011-add-in-causes-outlook-to-crash-when-used-on-citrix-xendesktop-environment/</guid>
      <description><![CDATA[Today I am taking about a strange issue in a unique environment. Outlook crashes with CRM Add-in on...]]></description>
      <content:encoded><![CDATA[<p>Today I am taking about a strange issue in a unique environment. Outlook crashes with CRM Add-in on Citrix XenDesktop. Crashes were random, affecting all users, experienced 8-10 times a day, while performing any core Outlook or CRM operation. Crashes were unpredictable as there were no pattern of repro steps which would lead to a crash of Outook.exe.</p>
<p>Had to learn some basics of XenDesktop; its Citirx product that provides client machine virtualization on the fly. VM is created from a source image (source image has OS and all required applications installed). When user initiates/login to a XenDesktop session VM is created from source image and VM is destroyed when user logs out. User profile is stored on a Network location, pulled into session on logon and changes are written back on logout.</p>
<p>As part of normal troubleshooting, isolation all other Add-ins were disabled but crashes continued to happen even when there was only CRM Add-in was enabled.</p>
<p>After checking few other known issue, next step was to enable CRM client platform trace logs using built-in diagnostics utility installed along with CRM for Outlook and wait for next crash to occur. With little bit of user education it was less than half-day and we got the CRM client platform traces witnessing a crash of Outlook. Being a crash, focus was on unhandled exception when I was looking at the client platform trace and below is the relevant extract that was complaining about a sharing violation for one of the CRM client SQL CE database files.</p>
<p class="codesnippet">&gt; HandleException: Unhandled Exception: System.Data.SqlServerCe.SqlCeException: There is a file sharing violation. <br /> A different process might be using the file. [ C:\Documents and Settings\berniem\Local <br /> Settings\Application Data\Microsoft\MSCRM\Client\d32489ad-413d-e111-8e2e-005056971f28False.sdf ]<br /> at System.Data.SqlServerCe.SqlCeConnection.ProcessResults(Int32 hr)<br /> at System.Data.SqlServerCe.SqlCeConnection.Open(Boolean silent)<br /> at System.Data.SqlServerCe.SqlCeConnection.Open()<br /> at Microsoft.Crm.MapiStore.ServerStore.&lt;&gt;c__DisplayClass22.b__1f()<br /> at Microsoft.ExceptionHelper.ExceptionFilter.TryFilter[TEx](Action body, Predicate`1 filter, Action`1 catchClause)<br /> at Microsoft.Crm.MapiStore.ServerStore.ExecuteInNewConnection(String entityTypeName, ConnectionActionsDelegate actions)<br /> at Microsoft.Crm.MapiStore.ServerStore.ExecuteInNewConnectionAndTransaction(String entityTypeName, TransactionActionsDelegate actions)<br /> at Microsoft.Crm.MapiStore.DataCache.InclusionUpdateWithCacheDb()<br /> at Microsoft.Crm.MapiStore.DataCache.BackgroundUpdateFromCacheDb(Boolean forceUpdate)<br /> at Microsoft.Crm.MapiStore.ServerStore.&lt;&gt;c__DisplayClass40.b__3e(Object unused)<br /> at Microsoft.Crm.Application.SMWrappers.OutlookInstanceCache.&lt;&gt;c__DisplayClass17.&lt;&gt;c__DisplayClass1a.b__15()<br /> at Microsoft.ExceptionHelper.ExceptionFilter.TryFilterAllCatch(Action body, Action`1 filter)</p>
<p class="codesnippet"><span class="highlight">&gt;Unhandled Exception in MAPIInterop: </span>Microsoft.Crm.MapiStore.MapiServiceEntryPoints+KnownStackTraceException:<br /> Error in the application. at Microsoft.Crm.MapiStore.MapiServiceEntryPoints.MapiApplication_MapiUnhandledException(IntPtr ep)<br /> at ExceptionFilter(_EXCEPTION_POINTERS* ep)<br /> at System.Data.SqlServerCe.SqlCeConnection.ProcessResults(Int32 hr)<br /> at System.Data.SqlServerCe.SqlCeConnection.Open(Boolean silent)<br /> at System.Data.SqlServerCe.SqlCeConnection.Open()<br /> at Microsoft.Crm.MapiStore.ServerStore.&lt;&gt;c__DisplayClass22.b__1f()<br /> at Microsoft.ExceptionHelper.ExceptionFilter.TryFilter[TEx](Action body, Predicate`1 filter, Action`1 catchClause)<br /> at Microsoft.Crm.MapiStore.ServerStore.ExecuteInNewConnection(String entityTypeName, ConnectionActionsDelegate actions)<br /> at Microsoft.Crm.MapiStore.ServerStore.ExecuteInNewConnectionAndTransaction(String entityTypeName, CommandActionsDelegate actions)<br /> at Microsoft.Crm.MapiStore.DataCache.LoadFromDatabase(ICrmServerStore serverStore, CacheSources sources)<br /> at Microsoft.Crm.MapiStore.ServerStore.GetEntityTypeDataInner(CacheSources sources, Boolean create, Boolean allowServerConnection, Boolean notifyGrid)<br /> at Microsoft.Crm.MapiStore.ServerStore.GetEntityTypeData(CacheSources sources, Boolean create, Boolean allowServerConnection, <br /> Boolean synchronousUpdateCheck, Boolean forceUpdate, Boolean notifyGrid)<br /> at Microsoft.Crm.MapiStore.ContentsTable.GetDataCache(CacheSources sources, Boolean synchronousUpdateCheck)<br /> at Microsoft.Crm.MapiStore.ContentsTable.EnsureData(Boolean synchronousUpdateCheck, Boolean notify)<br /> at Microsoft.Crm.MapiStore.ContentsTable.QueryRows(Int32 RowCount, IMAPITable_QueryRows_Flags Flags)<br /> at Microsoft.Interop.Mapi.MAPITableImpl.<br />QueryRowsManaged(MAPITableImpl* , Int32 lRowCount, UInt32 ulFlags, _SRowSet** ppRows)<br /> Will report to Watson as Native Exception.</p>
<p>Situation was perplexing, we know CRM client uses SQL CE database for storing multiple information but not sure how it&rsquo;s running into a sharing violation. The tool that comes in mind as first thought on file access issues is obviously ProcMon. So we set up ProcMon logging, ProcDump (to capture crash dump) and CRM client tracing on Client machine. Wait for few hours and we had these logs captured. Start of analysis was confirming Sharing Violation in CRM client trace and next eye was on ProcMon logs. After spending some time looking through ProcMon I could find solid evidences.</p>
<p>The sharing violation was for d32489ad-413d-e111-8e2e-005056971f28False.sdf file and this is visibly due to another process UserProfileManager.exe having this file open with Read ShareMode whereas Outlook.exe is trying to access the same file with desired Read/Write access. Even before the file is closed by UserProfileManager.exe! Below are the extracts and screenshots form ProcMon log. UserProfileManager.exe was visibly operating on user profile files throughout the ProcMon log.</p>
<pre>            <span class="highlight">10:08:12.9654623 UserProfileManager.exe</span>          1316    CreateFile        
            C:\Documents and Settings\\Local Settings\Application Data\Microsoft\MSCRM\<br />Client\d32489ad-413d-e111-8e2e-005056971f28False.sdf           
                SUCCESS        <br />Desired Access: Generic Read, Disposition: <span class="highlight">Open</span>, Options: Sequential Access, Synchronous IO Non-Alert, 
                Non-Directory File, <br />Open Reparse Point, Attributes: n/a, <br />ShareMode: Read, AllocationSize: n/a, 
                Impersonating: S-1-5-21-257275866-466943691-1091232502-1211, <br />OpenResult: <span class="highlight">Opened</span>
            <br /><br />10:08:13.2316028       OUTLOOK.EXE                      5444    CreateFile        
            C:\Documents and Settings\\Local Settings\Application Data<br />\Microsoft\MSCRM\Client\d32489ad-413d-e111-8e2e-005056971f28False.sdf            
                <span class="highlight">SHARING VIOLATION <br /> Desired Access: Generic Read/Write</span>, Disposition: Open, 
                Options: Synchronous IO Non-Alert, Non-Directory File, <br />Random Access, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

            </pre>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/7522.1.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/7522.1.png" alt="" border="0" /> <br /> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/6837.2.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/6837.2.png" alt="" border="0" /></p>
<p>With that being said, question was why this C:\Program Files\Citrix\User Profile Manager\UserProfileManager.exe is near constantly operation on files in User profile? User Profile Manager is a Citrix component so this question was out for Citirx Admins. After a bit of research on their side and what came out was a configuration possibility within User Profile Management called Active Write back. This feature is enabled by default and below is the link which describes the feature, how to disable it.</p>
<p>Citrix User Profile Management, to configure active write back - <a href="https://support.citrix.com/proddocs/topic/user-profile-manager-sou/upm-active-profile-write-back.html" target="_blank">https://support.citrix.com/proddocs/topic/user-profile-manager-sou/upm-active-profile-write-back.html </a></p>
<p>Disabling Active Write back feature of Citrix User Profile Management completely eliminated Outlook crashes from the affected environment.</p>
<p>Using CRM 2011 client with Citrix XenApp is officially tested and supported by CRM product team. Here is the whitepaper describing the environment in which both were tested and test results. However, Citrix XenDesktop hasn&rsquo;t gone through such compatibility test cycle.</p>
<p>Hope this was helpful.</p>
<p>Cheers, <br /> <a href="https://in.linkedin.com/pub/bhavesh-shastri/15/621/878">Bhavesh Shastri</a><br /> Support Escalation Engineer</p>]]></content:encoded>
    </item>
    <item>
      <title>Unexpected/Inaccurate federation metadata XML generated by CRM federation metadata         URLs</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/unexpectedinaccurate-federation-metadata-xml-generated-by-crm-federation-metadata-urls</link>
      <pubDate>Sun, 23 Dec 2012 01:19:22 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/12/23/unexpectedinaccurate-federation-metadata-xml-generated-by-crm-federation-metadata-urls/</guid>
      <description><![CDATA[Hi All,
Today we&rsquo;re are going to talk about the unexpected/Inaccurate federation metadata XML...]]></description>
      <content:encoded><![CDATA[<p>Hi All,</p>
<p>Today we&rsquo;re are going to talk about the unexpected/Inaccurate federation metadata XML generated by CRM federation metadata URLs. I have seen many people getting into this. Let&rsquo;s take a deep dive into usage of federation into CRM.</p>
<p>We all know that CRM 2011 uses AD FS 2.0 to provide claims based authentication. For AD FS STS (Security Token Service) to provide a Security Token (SAML Token) for CRM application to consume AD FS has to know some basic information like format, content (basically claims) etc. so that the Token issued by AD FS STS is consumable by CRM application.</p>
<p>Being application&rsquo;s requirement CRM 2011 has to tell AD FS on what format, information it should have SAML token. CRM 2011 achieved this by providing Federation Metadata URL from which AD FS can retrieve the Federation Metadata for CRM application.</p>
<p>CRM maintains separate external and internal endpoints so it can tell AD FS to authenticate the internal users (users on the company network/VPN) to be authenticated using Kerberos authentication and the external users using AD FS form based authentication. Here is a sample of what external and internal URL may look like:</p>
<h3 class="topicHead">External Federation metadata URL:</h3>
<p>https://crmauth.namma.com/FederationMetadata/2007-06/FederationMetadata.xml</p>
<h3 class="topicHead">Internal Federation metadata URL:</h3>
<p>https://crmint.namma.com/FederationMetadata/2007-06/FederationMetadata.xml</p>
<p>Further to clarify internal Federation metadata URL is the one which you specify on Web Address tab of Deployment Properties in Deployment Manager tab. External Federation metadata URL is the one specified in text box &ldquo;Enter the external domain where your Internet-lacing servers are located:&rdquo; on 3rd page on Configure Internet Facing Deployment wizard in Deployment manager.</p>
<p>Ideally, both internal and external Federation Metadata XML has different CRM endpoints specified to tell AD FS to differentiate the authentication behavior.</p>
<p>In odd situations you may see both internal and external CRM federation metadata URLs returning external end points in XML. When such wrong end points are given by internal federation metadata URL, browsing internal URL shown AD FS sign-in page, 404 on providing credentials on the AD FS sign-in page. </p>
<h3 class="topicHead">Here are screenshots for pictorial representation of this behavior:</h3>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/0285.1.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/0285.1.png" alt="" border="0" /></p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/8132.2.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/8132.2.png" alt="" border="0" /></p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/8780.3.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/8780.3.png" alt="" border="0" /></p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/2425.4.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/2425.4.png" alt="" border="0" /></p>
<p>You can see in above example that both internal and external URL exhibits external endpoints which is unexpected.</p>
<p>This behavior happens when there is default port number specified with Internal URL under deployment properties. Port 443 is not required when HTTPS (SSL) is specified as its default port for HTTPS communication. However, there could be a situation in which CRM website HTTPS bindings has a custom port specified e.g. 444. In such scenarios one have to specify port 444 explicitly as its not known to be HTTPS communications port. Removing the port number 443 gives expected Federation Metadata XML. In other words, specifying internal URL like internalcrm.crm.namma.com instead of internalcrm.crm.namma.com:443 followed by IIS reset returns expected behavior.</p>
<h3 class="topicHead">Here is a sample screenshot:</h3>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/6560.CRM%20Properties%20-%20Claims.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/6560.CRM-Properties-_2D00_-Claims.png" alt="" border="0" /></p>
<p>Thanks &amp; Regards<br /> Bhavesh Shastri</p>]]></content:encoded>
    </item>
    <item>
      <title>Silent configuration of CRM for Outlook client in CRM 2011 claims enabled environment</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/silent-configuration-of-crm-for-outlook-client-in-crm-2011-claims-enabled-environment</link>
      <pubDate>Sun, 23 Dec 2012 00:57:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/12/23/silent-configuration-of-crm-for-outlook-client-in-crm-2011-claims-enabled-environment/</guid>
      <description><![CDATA[Hi Folks,  Today I&rsquo;m going to talk about CRM Outlook Silent configuration.
CRM 2011 Outlook...]]></description>
      <content:encoded><![CDATA[<p>Hi Folks,<br /> <br /> Today I&rsquo;m going to talk about CRM Outlook Silent configuration.</p>
<p align="left">CRM 2011 Outlook client provides silent configuration option to help administrators to deal with situations where users are remote, travelling and/or non-savvy to run Configuration Wizard with correct inputs. Configuring CRM 2011 Outlook client using silent method in a claims enabled environment can pose a challenge. The client Configuration Wizard when run in claims enabled environment and silent (/Q switch); the wizard expects the user&rsquo;s CRM credentials in Credential Manager (a.k.a. Windows Vault) found in Control Panel-&gt;User Account-&gt;Manage your Credentials. In case of non-silent configuration when it doesn&rsquo;t find CRM credential in Windows Vault it prompts user to enter CRM credentials and saves it to Vault based on user input for remembering credentials.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/bhavesh/7838.logon-claims.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-bhavesh/7838.logon_2D00_claims.png" alt="" border="0" /></p>
<p align="left">In case of silent configuration (i.e. /Q switch with Microsoft.Crm.Application.Outlook.ConfigWizard.exe) user&rsquo;s credentials are expected in the Windows Vault. If configuration wizard doesn&rsquo;t find the credentials or it&rsquo;s not in required format, the wizard fails to configure the client and error like below is reported in configuration log file:</p>
<h1 class="topicHead">Stack Trace</h1>
<p class="codesnippet">13:43:35| Error| Error connecting to URL: https://orgname.domain.com/XRMServices/2011/Discovery.svc Exception: Microsoft.Crm.CrmException: Credentials required <br /> at Microsoft.Crm.Outlook.ClientAuth.ClaimsBasedAuthProvider`1.AuthenticateClaims() <br /> at Microsoft.Crm.Outlook.ClientAuth.ClaimsBasedAuthProvider`1.SignIn() <br /> at Microsoft.Crm.Outlook.ClientAuth.ClientAuthProvidersFactory`1.SignIn(Uri endPoint, Credential credentials, AuthUIMode uiMode, IClientOrganizationContext context, Form parentWindow, Boolean retryOnError) <br /> at Microsoft.Crm.Application.Outlook.Config.DeploymentsInfo.DeploymentInfo.LoadOrganizations(AuthUIMode uiMode, Form parentWindow, Credential credentials) <br /> at Microsoft.Crm.Application.Outlook.Config.DeploymentsInfo.InternalLoadOrganizations(OrganizationDetailCollection orgs, AuthUIMode uiMode, Form parentWindow) <br /> 13:43:35| Error| Exception : Credentials required at Microsoft.Crm.Application.Outlook.Config.DeploymentsInfo.LoadOrganizations(AuthUIMode uiMode, Form parentWindow) <br /> at Microsoft.Crm.Application.Outlook.Config.ClientConfig.AddDeployment(DeploymentsDeployment[] deployments, AuthUIMode uiMode) <br /> at Microsoft.Crm.Application.Outlook.Config.ClientConfig.Run(Boolean runInsideOutlook) <br /> at Microsoft.Crm.Application.Outlook.Config.ClientConfig.Start(String[] args, Boolean runInsideOutlook) <br /> 13:43:35|Verbose| Method entry: Microsoft.Crm.Application.Outlook.Config.ClientConfig.Terminate <br /> 13:43:35| Info| Exit code: Failure <br /> 13:43:35|Verbose| Method exit: Microsoft.Crm.Application.Outlook.Config.ClientConfig.Terminate <br /> 13:43:35| Info| === Microsoft Dynamics CRM for Outlook Configuration Wizard logging stopped: 10/30/2012 1:43:35 PM ===</p>
<h1 class="topicHead">Possible Solution/Recommendations</h1>
<p>Simple solution is to add the credentials to Windows Vault before running configuration wizard; same is described in this <a href="https://blogs.msdn.com/b/crminthefield/archive/2011/02/23/configuring-the-crm-online-2011-outlook-client-silently.aspx"> blog</a> post by field engineering team. In case silent configuration and/or non-savvy user this could be a challenge for system administrators.</p>
<p>Cmdkey command can be great help in this situation. Here is TechNet document describing cmdkey command <a href="https://technet.microsoft.com/en-us/library/cc754243(v=WS.10).aspx" target="_blank">https://technet.microsoft.com/en-us/library/cc754243(v=WS.10).aspx</a>. <br /> This command can be used in logon batch script like below example to add the credentials before running the Configuration Wizard and then calling the Microsoft.Crm.Application.Outlook.ConfigWizard.exe with required switches and parameters.</p>
<h1 class="topicHead">Here is the sample logon script:</h1>
<p><span class="codesnippet">@echo off <br /> ECHO Logon Script to configure CRM Outlook client <br /> @echo on <br /> @echo off <br /> reg query HKCU\Software\Microsoft\MSCRMClient /v OrgId <br /> IF errorlevel=1 ( GOTO Configure) ELSE ( GOTO End) <br /> :Configure <br /> cmdkey /generic:Microsoft_CRM_https://<strong>orgname</strong>.<strong>domain</strong>.com/ /user:%username%@%userdnsdomain% /pass <br /> ECHO Configuring CRM Outlook client <br /> cd C:\Program Files (x86)\Microsoft Dynamics CRM\Client\ConfigWizard <br /> Microsoft.Crm.Application.Outlook.ConfigWizard.exe /Q /i c:\config.xml /l c:\crmclientinstall.log <br /> :End <br /> ECHO CRM Outlook client is configured. <br /> PAUSE <br /> EXIT </span></p>
<h1 class="topicHead">Basic requirements</h1>
<p>There are few basic requirements for the entry made to Windows Vault;</p>
<ul>
<li>It must be added as generic credential</li>
<li>Internet or Network Address must specified as Microsoft_CRM_https://<strong>orgname</strong>.<strong>domain</strong>.com/ (don&rsquo;t miss the slash (/) at the end of URL)</li>
<li>The Username must be in UPN format, i.e.@. E.g. &ndash; Jdoe@contoso.com.</li>
</ul>
<p><br /> When using CMDKEY command with /pass switch and w/o password supplied as parameter CMDKEY prompts for password. To get this command to work as part of logon script it&rsquo;s mandatory that you have Run Logon Script Visible Group policy enabled. Run logon scripts visible can be found under User Configuration\Administrative Templates\System\Script and here is TechNet document describing this policy. https://technet.microsoft.com/en-us/library/cc975927.aspx</p>
<p>Thanks &amp; Regards<br />Bhavesh Shastri</p>]]></content:encoded>
    </item>
    <item>
      <title>CRM for Outlook fails to configure with Dynamics CRM Online</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/crm-for-outlook-fails-to-configure-with-dynamics-crm-online</link>
      <pubDate>Sun, 25 Nov 2012 02:05:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/11/25/crm-for-outlook-fails-to-configure-with-dynamics-crm-online/</guid>
      <description><![CDATA[Hello Folks,   This article talks about the outlook client configuration for CRM online...]]></description>
      <content:encoded><![CDATA[<p>Hello Folks, <br /> <br /> This article talks about the outlook client configuration for CRM online organizations. Microsoft has changed the platform for all CRM Online organizations to work with integrated environment. This is called Office 365. Since the change we have seen a lot of users failing to configure outlook for CRM. Further I will talk about the changes that you will need to do to over comes this issue.</p>
<p>Once you start configuring outlook you get a generic exception &ldquo;Microsoft Dynamics CRM has encountered an error. Please contact Microsoft Support&rdquo; or &ldquo;Microsoft Dynamics CRM cannot authenticate the user. Contact Microsoft Support&rdquo;. <br /> <br /> Further if we collect the CRM outlook traces, we see below exception report</p>
<p>Error that is seen in the <strong>Crm50ClientConfig.log</strong> when configuring <strong>https://crmorgname.crm5.dynamics.com</strong>. <br /> Note: This happens when we provide CRM online URL.</p>
<h2 class="topicHead">Exception report</h2>
<p class="codesnippet">Error| Error connecting to URL: https://dev.crm.dynamics.com/XRMServices/2011/Discovery.svc <br /> Exception: Microsoft.Crm.CrmException: Logon failed because credentials are invalid ---&gt; Microsoft.Crm.Passport.IdCrl.IdCrlException: LogonIdentityExWithUI()<br /> at Microsoft.Crm.Passport.IdCrl.FederationLogOnManager.LogonPassport(String policy, String partner, LOGON_FLAG logonFlag)<br /> at Microsoft.Crm.Passport.IdCrl.FederationLogOnManager.Logon(String userName, String password, String partner, String policy, String&amp; memberName)<br /> at Microsoft.Crm.Outlook.ClientAuth.PassportAuthProvider`1.SignIn()</p>
<h2 class="topicHead">Let's talk about a bit why this fails?</h2>
<p><br /> The reason for authentication failure is <strong>https://dev.crm.dynamics.com/XRMServices/2011/Discovery.svc</strong> expects live id credentials and user gets redirected WLID authentication site instead of the new O365 online sign in URL <strong>https://login.microsoftonline.com</strong>. To overcome this error a user needs to Configure outlook client by using any of the below options. Since the new orgs have been provisioned on the new OSDP platform we will need to change the outlook client configuration slightly. In the configuration wizard enter the URL in this format <strong>https://disco.crm5.dynamics.com</strong>or use <strong>CRM online</strong>.</p>
<h2 class="topicHead">Configuration Steps</h2>
<p><strong>Step 1: Provide URL</strong> <br /> <br /> Option 1: <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/8547.CRM%20Online%20format.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/8547.CRM-Online-format.png" alt="" border="0" /></p>
<p>Option 2: <br /> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/8547.CRM%20Online%20format-%202.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/8547.CRM-Online-format_2D00_-2.png" alt="" border="0" /></p>
<p>&nbsp;</p>
<p><strong>Step 2: Provide user credentials</strong> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/5811.crm%20online%20login%20window.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/5811.crm-online-login-window.png" alt="" border="0" /></p>
<p><strong>Step 3: Select your organization</strong> <br /> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/1614.configure%20window.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/1614.configure-window.png" alt="" border="0" /></p>
<p><strong>Step 4: You're done</strong> <br /> <br /> <img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/50/25/sudhir/2287.final%20configure%20window.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-50-25-sudhir/2287.final-configure-window.png" alt="" border="0" /></p>
<p>This will finish the configuration and we are all set to use the outlook clients for CRM Online!</p>
<p>Cheers,<br /> Sudhir Nory</p>]]></content:encoded>
    </item>
    <item>
      <title>Authenticate Office 365 Users with Microsoft Dynamics CRM Online</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/authenticate-office-365-users-with-microsoft-dynamics-crm-online</link>
      <pubDate>Sun, 29 Jul 2012 12:30:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/07/29/authenticate-office-365-users-with-microsoft-dynamics-crm-online/</guid>
      <description><![CDATA[We have an article available for our customer's to use office 365 integration using CRM SDK....]]></description>
      <content:encoded><![CDATA[<p>We have an article available for our customer's to use office 365 integration using CRM SDK. <a href="https://blogs.msdn.com/b/apurvghai/archive/2012/07/29/authenticate-office-365-users-with-microsoft-dynamics-crm-online.aspx" target="_blank">https://blogs.msdn.com/b/apurvghai/archive/2012/07/29/authenticate-office-365-users-with-microsoft-dynamics-crm-online.aspx</a></p>
<p>Regards,&nbsp;<br /> CRM India Team</p>]]></content:encoded>
    </item>
    <item>
      <title>Performance Tuning for Email router</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/performance-tuning-for-email-router</link>
      <pubDate>Wed, 11 Apr 2012 07:16:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/04/11/performance-tuning-for-email-router/</guid>
      <description><![CDATA[Issues frequently reported

Microsoft.Crm.Tools.EmailAgent.SystemState.xml file gets corrupted...]]></description>
      <content:encoded><![CDATA[<h3 class="topicHead">Issues frequently reported</h3>
<ul>
<li>Microsoft.Crm.Tools.EmailAgent.SystemState.xml file gets corrupted very often which stops email router from processing the emails.</li>
<li>The e-mail router configuration manager was unable to read configuration information. Make sure no files in the current directory are locked, missing or inaccessible.</li>
</ul>
<h3 class="topicHead">Cause/Explanation</h3>
<p align="justify">When the email agent is trying to service the emails, and updates the ThresholdDate and LastError tags in the large XML file, I/O issues can happen causing the file to grow very large and start becoming unresponsive. When this happens, the writing to the file is incomplete and some of the XML tags are not completely closed. When they are not closed the file is not recognized as a valid XML file.</p>
<pre>&lt;hzdzpo6bojytfabbohbc41r4rjho&gt;
&lt;emailaddress&gt;Administrator@cts.lab&lt;/emailaddress&gt;
&lt;lasterror&gt;
&lt;/lasterror&gt;
&lt;thresholddate&gt;2010-06-19T02:37:42.0000000Z&lt;thresholddate&gt;
&lt;/hzdzpo6bojytfabbohbc41r4rjho&gt;
.
.
.
&lt;hc7huh096asdikakwriugmr3p1bk&gt;
&lt;emailaddress&gt;userno1509@cts.lab&lt;/emailaddress&gt;
&lt;lasterror&gt;The request failed with HTTP status 503: Service Unavailable.&lt;/lasterror&gt;
&lt;thresholddate&gt;
TAG HERE IS NOT CLOSED
</pre>
<p align="justify">Now at this state when email router tries to process emails, it looks at this systemstate.xml file in order to write information into it, however it finds that this file is invalid as the Tags haven&rsquo;t been closed due to huge size of the file, I/O issues.</p>
<p align="justify">This validation is done when the service is started, and since it&rsquo;s not a valid XML file the service fails to start. There isn't a sure fire way to prevent this from ever happening, but we should be able to back up Microsoft.Crm.Tools.EmailAgent.systemstate.xml and restore it on the fly is xml validation does not work. This would save the time it takes to re-build the file, and re update the threshold dates which typically happens when users tend to uninstall and reinstall the email router. If you ask me, uninstalling and reinstalling is not a best way to work around this as it typically takes longer times.</p>
<p align="justify">Post update roll up 10, we have come up with an automated generation of the Microsoft.Crm.Tools.EmailAgent.systemstate.xml.bak (backup file in a valid state) which stores the same set of information as Microsoft.Crm.Tools.EmailAgent.systemstate.bad.xml.</p>
<h3 class="topicHead">Typical Event viewer Errors you would see when your email router is either corrupted or not working as expected</h3>
<pre>#14494 - A provider work item using assembly: Microsoft.Crm.Tools.EmailProviders.dll 
and class: Microsoft.Crm.Tools.Email.Providers.SmtpPollingSendEmailProvider has
been aborted because it has been running for longer than the allowed execution time.
This behavior may occur when there is a problem with the network or because the
e-mail server is busy. Verify that you can log on to the e-mail server by using
an e-mail application that uses the account specified for the E-mail Router.
    </pre>
<pre>#61346 - An error occurred while checking for outgoing e-mail messages to process for SMTP: https://mia33530app001/Insphere.
     System.Threading.ThreadAbortException: Thread was being aborted. 
at Microsoft.Win32.Win32Native.CreateFile(String lpFileName, 
Int32 dwDesiredAccess, FileShare dwShareMode, SECURITY_ATTRIBUTES 
securityAttrs, FileMode dwCreationDisposition, Int32 dwFlagsAndAttributes, IntPtr hTemplateFile) 
at Microsoft.Win32.Win32Native.SafeCreateFile(String lpFileName, Int32 dwDesiredAccess, 
FileShare dwShareMode, SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition,
Int32 dwFlagsAndAttributes, IntPtr hTemplateFile) 
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, 
Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, 
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) 
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, 
FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) 
at System.IO.FileStream..ctor(String path, FileMode mode, 
FileAccess access, FileShare share) 
at System.Xml.XmlDOMTextWriter..ctor(String filename, Encoding encoding) 
at System.Xml.XmlDocument.Save(String filename) 
at Microsoft.Crm.Tools.Email.Providers.ConfigFileReader.Save() 
at Microsoft.Crm.Tools.Email.Providers.ConfigNodeReader.SetIntValue(String elementName, Int32 setValue) 
at Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.RetrieveNextMessageInternal() 
at Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.RetrieveNextMessage() 
at Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.Run()
</pre>
<pre>#26234 - The E-mail Router service could not process a provider work item using assembly: 
Microsoft.Crm.Tools.EmailProviders.dll and class: Microsoft.Crm.Tools.Email.Providers.SmtpPollingSendEmailProvider. 
System.IO.IOException: The process cannot access the 
file 'D:\Program Files\Microsoft CRM Email\Service\Microsoft.Crm.Tools.EmailAgent.SystemState.xml' 
because it is being used by another process. 
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, 
Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, 
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) 
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, 
Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) 
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 
at System.Xml.XmlDOMTextWriter..ctor(String filename, Encoding encoding) 
at System.Xml.XmlDocument.Save(String filename) 
at Microsoft.Crm.Tools.Email.Providers.ConfigFileReader.Save() 
at Microsoft.Crm.Tools.Email.Providers.ConfigNodeReader.
SetStringValue(String elementName, String setValue) 
at Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.
LogErrorToState(Exception exception) 
at Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.
HandleRetrieveNextMessageError(Exception exception) 
at Microsoft.Crm.Tools.Email.Providers.
CrmPollingSendEmailProvider.Run() 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.
ExecuteProviderWork(Object providerQueueRequestObject)
    </pre>
<pre>#16192 - The E-mail Router service could not run the service main background thread. 
The E-mail Router service cannot continue and will now shut down. System.Configuration.ConfigurationErrorsException: 
The E-mail router service cannot access system state file Microsoft.Crm.Tools.EmailAgent.SystemState.xml. 
The file may be missing or may not be accessible. 
The E-mail Router service cannot continue and will now shut down. ---&gt; 
System.Xml.XmlException: Unexpected end of file has occurred. 
The following elements are not closed: ThresholdDate, Hc7huh096aSDIKakwrIUgMr3p1Bk, 
State. Line 9878, position 20. 
at System.Xml.XmlTextReaderImpl.Throw(Exception e) 
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String arg) 
at System.Xml.XmlTextReaderImpl.ThrowUnclosedElements() 
at System.Xml.XmlTextReaderImpl.ParseElementContent() 
at System.Xml.XmlTextReaderImpl.Read() 
at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) 
at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) 
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) 
at System.Xml.XmlDocument.Load(XmlReader reader) 
at System.Xml.XmlDocument.Load(String filename) 
at Microsoft.Crm.Tools.Email.Providers.
ConfigFileReader..ctor(String filePath, ServiceLogger serviceLogger) 
at Microsoft.Crm.Tools.Email.Providers.
SystemState.Initialize(ServiceLogger serviceLogger) 
at Microsoft.Crm.Tools.Email.Providers.SystemState..ctor(ServiceLogger serviceLogger) 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.InitializeSystemConfiguration() 
--- End of inner exception stack trace --- 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.InitializeSystemConfiguration() 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.ExecuteService()

   </pre>
<pre>#16192 - The E-mail Router service could not run the service main background thread. 
The E-mail Router service cannot continue and will now shut down. 
System.Threading.ThreadAbortException: Thread was being aborted. 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.UpdateConfiguration() 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.ScheduleProviderWork() 
at Microsoft.Crm.Tools.Email.Agent.ServiceCore.ExecuteService()

</pre>
<h3 class="topicHead">Recommendations</h3>
<ul>
<li>Rename the Microsoft.Crm.Tools.EmailAgent.systemstate.xml to Microsoft.Crm.Tools.EmailAgent.systemstate.bad.xml. This file is located at X:\Program Files\Microsoft CRM Email\Service, where X is the email router install directory.</li>
<li>Rename the Microsoft.Crm.Tools.EmailAgent.systemstate.xml.bak to Microsoft.Crm.Tools.EmailAgent.systemstate.xml</li>
<li>Lower the max messages to 500 on Incoming / Outgoing Profile &ndash; Advanced Tab. This value is set to 1000 by default. Reducing the count to 500 will reduce the number of emails to be processed by the email router in 1 minute.</li>
<li>I would recommend to implement the registry keys mentioned in the KB articles - <a href="https://support.microsoft.com/kb/981053">https://support.microsoft.com/kb/981053</a> and <a href="https://support.microsoft.com/kb/2403296">https://support.microsoft.com/kb/2403296</a> .Please do not go by the Title of the article though. I want to focus on the real time errors, events that we hit with Email router in such scenarios which are explained in the symtopms OR the cause sections.</li>
<li>Improve E-mail Router performance within large deployments:-</li>
</ul>
<p>For Windows Server 2003: <a href="https://msdn.microsoft.com/en-us/library/aa560610(BTS.20).aspx"> https://msdn.microsoft.com/en-us/library/aa560610(BTS.20).aspx</a> <br /> For Windows Server 2008: <a href="https://www.microsoft.com/downloads/details.aspx?familyid=12AC9780-17B5-480C-AEF7-5C0BDE9060B0"> https://www.microsoft.com/downloads/details.aspx?familyid=12AC9780-17B5-480C-AEF7-5C0BDE9060B0</a> <br /> FAQ&rsquo;s on Email router: <a href="https://support.microsoft.com/kb/2023229">https://support.microsoft.com/kb/2023229</a> <br /> CRM 4.0 E-mail Router deployment guidelines - <a href="https://rc.crm.dynamics.com/rc/regcont/en_us/op/articles/configrouter.aspx#o30952"> https://rc.crm.dynamics.com/rc/regcont/en_us/op/articles/configrouter.aspx#o30952</a> </p>
<p>These would be the best practices I would recommend in such scenarios where there is a huge list of users using the email router and when the email router stops responding / EmailAgent.xml file gets corrupted. </p>
<p>Cheers,<br /> Solomon Einstein</p>]]></content:encoded>
    </item>
    <item>
      <title>Understanding Microsoft Dynamics CRM 2011 Solutions</title>
      <link>https://docs.microsoft.com/archive/blogs/crmindia/understanding-microsoft-dynamics-crm-2011-solutions</link>
      <pubDate>Wed, 04 Apr 2012 03:50:00 GMT</pubDate>
      <dc:creator><![CDATA[crmindiablog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/crmindia/2012/04/04/understanding-microsoft-dynamics-crm-2011-solutions/</guid>
      <description><![CDATA[Hello Friends,  This is my first blog post where I would like to talk about the much discussed...]]></description>
      <content:encoded><![CDATA[<p align="justify">Hello Friends, <br /><br /> This is my first blog post where I would like to talk about the much discussed component of Microsoft Dynamics CRM 2011 &ndash; Solutions and its behavior.<br /> Without much ado, let me straightaway begin with the following scenario</p>
<ul>
<li>Under the phone call entity, deleted the default optionset values (Made &amp; Received) for the attribute statuscode</li>
<li>Created two custom values (Completed &amp; Left Message) under the same statuscode attribute of the phone call entity</li>
<li>Published the customizations.</li>
<li>Created a solution with the phone call entity and exported it.</li>
<li>Imported the solution in a different organization (vanilla).</li>
<li>After the import, you will observe that we have four values in the option set, two default ones and two custom values (Made &amp; Received, Completed &amp; Left Message).</li>
<li>Once again imported the same solution in org2 and this time we have only two custom values (Completed &amp; Left Message).</li>
</ul>
<h3 class="topicHead">Scenario1: Unmanaged solution scenario</h3>
<p style="text-align: justify;">When we imported the solution with two custom values and published in org2, it did not remove the default values but added two more custom values. This is because unmanaged solutions are additive in nature. However, the question remains, why has it deleted two default values in the second attempt, while it should have just ignored this entity as there was no update on this?</p>
<h3 class="topicHead">Explanation:</h3>
<p style="text-align: justify;">The statuscode attribute of the PhoneCall entity is a Managed component in the base solution. By adding the phone call entity to an unmanaged solution, the flag for the option set values is set to Merge. Since the flag is set to Merge, all four values of the option set will exist in the target system during the initial import of the solution. The reason for this flag is to give the system customizer a chance to get rid of any updates that were made by the unmanaged solution. A subsequent import of the solution will clear the flag and simply use the changes contained in the solution to overwrite the components in the system.</p>
<h3 class="topicHead">Scenario2: Same behavior with Managed solution</h3>
<h3 class="topicHead">Explanation:</h3>
<p style="text-align: justify;">Managed solution merges the values resulting in updating/merging the option set values, which means that when you import the solution it will overwrite the values.</p>
<p>Cheers,<br /> Ritesh Ranjan</p>]]></content:encoded>
    </item>
  </channel>
</rss>