Showing results for 
Search instead for 
Do you mean 

GDI Error on Windows Terminal Server

New Member
Posts: 3
Country: USA

GDI Error on Windows Terminal Server

We just upgrade to ACT 2012.  Now users get a GDI error on our terminal server.  The problem is covered in this knowledge base article:


I added those two lines to act.exe.config on the terminal server per the KB article:


  • <add key="TurnoffSettingMenuBackgroundImage" value="true"/>
  • <add key="TurnoffSettingToolBarBackgroundImage" value="true"/>

 The complete contents of the file are shown below.  Anything else we can do? 



<!-- <configSections> MUST ALWAYS BE FIRST CHILD ELEMENT IN <configuration/> ELEMENT -->
<sectionGroup name="connectedServices">
<section name="containerConfiguration" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="settings" type="System.Configuration.AppSettingsSection" />
<section name="PopupSettings" type="Act.UI.ConnectedServices.ConnectedServicesSettingsSection,Act.UI.ConnectedServices" />
<section name="SmartList" type="System.Configuration.SingleTagSectionHandler" />
<section name="Installation" type="System.Configuration.SingleTagSectionHandler" />
<section name="Messaging" type="System.Configuration.SingleTagSectionHandler" />
<section name="SQLServerMemoryManager" type="System.Configuration.SingleTagSectionHandler" />
<section name="OutlookSyncDesktopUnitySection" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,
<section name="SyncAppSettings" type="System.Configuration.AppSettingsSection" />
<section name="" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,


<section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/>

<add key="RemoteActApplicationObjectFactory.Port" value="6969"/>
<!-- Database Timout values are in seconds so a value of 30 will be 30 seconds -->
<add key="DatabaseCommandTimeOut.Default" value="90"/>
<add key="DatabaseConnectionTimeOut.Default" value="30"/>
<add key="DatabaseCommandTimeOut.Long" value="3600"/>
<!-- End timout values. -->
<!-- Supplemental file system watcher for syncing files -->
<add key="Synchronization.MonitorDatastore" value="true"/>
<!-- A bi-directional outbound transport setting to avoid encryption of sync data.
Note: Must be set on both client and server -->
<add key="Synchronization.UseEncryption" value="true"/>
<!-- A uni-directional outbound file sync override to shut off any files from syncing.
Note: Can be set on either client or server -->
<add key="Synchronization.SyncFileData" value="true"/>
<!-- A uni-directional outbound file sync buffer size.
Note: Default size is 1 Megabytes. Change this value to regulate file sync performance. -->
<add key="Synchronization.FileBufferSize" value="1048576"/>
<!-- A uni-directional outbound data list buffer size.
Note: Default size is 100 records per sync packet. Change this value to regulate data sync performance. -->
<add key="Synchronization.DataListBufferSize" value="100"/>
<!-- Number of minutes in program to check for doing memory optimizations. -->
<add key="MemoryOptimizationTimeoutInMinutes" value="0"/>
<!-- Whether or not to allow the customizations of views to be sticky including menus -->
<add key="AllowCustomizations" value="true"/>
<!-- Whether or not to create a log from the TAPIEx component. This log is written to the install path, therefore could require windows admin writes. -->
<add key="TAPIEx.CreateLogFile" value="false"/>
<!-- Number of seconds after contact detail view is shown to background load other views
for faster view switching performance (note: 0 seconds means don't background load view)-->
<add key="BackgroundLoadTaskView" value="15"/>
<add key="BackgroundLoadCalendarView" value="30"/>
<add key="BackgroundLoadGroupView" value="45"/>
<add key="BackgroundLoadCompanyView" value="60"/>
<add key="BackgroundLoadOpportunityView" value="75"/>
<add key="BackgroundLoadActivityNotification" value="20"/>
<!-- Pre-Loads portion of ACT! for faster startup -->
<add key="FastLoadEnabled" value="true"/>


<!-- Dashboard Section-->
<!-- Defines the max axis percent value default 20. The axis will not be more than this percent of the chart control. -->
<add key="DashboardAxisMaxSizePercentage" value="20"/>
<!-- Defines the font size to be used in the legend. default 9.0-->
<add key="DashboardLegendFontSize" value="9"/>
<!-- defines the max height for the legend when on top or bottom
this will override the height percentage when the calculation for that value is
greater then the this value.
Example: ChartHeight = 400, percentage = 50 and max = 100 the legend height will will be 100 -->
<add key="DashboardLegendMaxHeight" value="200"/>
<!-- defines the percentage the legend control will take up on the chart.
if the chart is 400 pixels in height and this value is 25 then the legend will
take up 100 pixels or 25% of the chart display. for the legend when on top or bottom.
Example: ChartHeight = 1000, percentage = 40 and max = 300 the legend height will will be 300
ChartHeight = 1000, percentage = 20 and max = 300 the legend height will will be 200
<add key="DashboardLegendHeightPercent" value="30"/>
<!-- defines the max width for the legend when on left or right -->
<add key="DashboardLegendMaxWidth" value="300"/>
<!-- defines the max width for the legend when on left or right
this will override the height percentage when the calculation for that value is
greater then the this value.
Example: ChartWidth = 1000, percentage = 40 and max = 300 the legend width will will be 300
ChartWidth = 1000, percentage = 20 and max = 300 the legend width will will be 200
<add key="DashboardLegendWidthPercent" value="40"/>


<!-- defines if the legend should be word wrapped.
Possible values - "true", "false"
<add key="DashboardLegendWordWrap" value="false"/>
<!-- END Dashboard Section-->


<!-- Shows or hides the Preview pannel on the Document tab-->
<add key="DocumentPreviewPanel.Visible" value="false"/>
<!-- Timeout value in minutes for reading large sets from an SData feed-->
<add key="SData.BigReadTimeOutMinutes" value="10"/>
<!-- Controls whether or not paging will be used on an SData feed for collection requests. Default is true-->
<add key="SData.UseFeedPaging" value="true"/>
<!-- Controls whether or not the conversion process will skip the download of required components. Default is false-->
<add key="SData.Conversion.SkipDownload" value="false"/>
<!-- if "SData.Conversion.SkipDownload" is set to true, this name will be used to identifiy which DLL is the correct upgrade helper-->
<add key="SData.Conversion.UpgradeHelperName" value="Sage.Integration.Accounts.Upgrade.DLL"/>
<!-- Determines how many entries should be retrieved from a collection. This is to fix the Out of Memory be generated in the SData Client.-->
<add key="SData.CollectionRequestCount" value="25"/>
<!-- Determines the timeout when retrieving entries from a collection.-->
<add key="SData.CollectionRequestTimeout" value="1800"/>

<!--If enabled, images throughout the application will be cached and used multiple times/places with out being reconstructed-->
<add key="UseImageCache" value="true"/>
<add key="TurnoffSettingMenuBackgroundImage" value="true"/>
<add key="TurnoffSettingToolBarBackgroundImage" value="true"/>
<type type="Act.Server.Contracts.ConnectedServices.ICatalogProvider, Act.Server.Contracts"
mapTo="Act.UI.ConnectedServices.FileCatalogProvider, Act.UI.ConnectedServices"/>
<add key="ModuleDirectory" value=""/>
<!-- minutes between catalog refresh requests (1440 minutes = 24hrs)-->
<add key="CatalogPollingInterval" value="1440"/>
<add key="CatalogDirectory" value=""/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Tools;Plugins" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity name="Act.UI" publicKeyToken="EBF6B2FF4D0A08AA"/>
<bindingRedirect oldVersion="" newVersion="" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity name="Act.UI.Core" publicKeyToken="EBF6B2FF4D0A08AA"/>
<bindingRedirect oldVersion="" newVersion="" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity name="Act.Dashboard.DataChart" publicKeyToken="EBF6B2FF4D0A08AA"/>
<bindingRedirect oldVersion="" newVersion="" />
<binding name="CustomBinding_ISearchService">
<security authenticationMode="UserNameOverTransport"/>
<tcpTransport maxReceivedMessageSize="5242880"/>
<!--Logging Levels: value =
0 – Off
1 – Error
2 – Warning
3 – Info
4 – Verbose


<!-- New High Level Log Categories - beginning with ACT! 12.1 -->
<add name="ACTCommonSwitch" value="1"/>
<add name="ACTFrameworkSwitch" value="1"/>
<add name="ACTApplicationSwitch" value="1"/>


<!-- The categories below are not used in new code, but still exist in legacy code
(i.e., you may need to set the logging levels for both the old (below)
and the new (above) categories for now -->
<add name="ACTCoreSwitch" value="1" />
<add name="ACTUISwitch" value="1" />
<add name="ACTIntegrationSwitch" value="1"/>
<add name="ACTSecuritySwitch" value="1" />
<add name="ACTSyncSwitch" value="1" />
<add name="ACTSyncSetupSwitch" value="1" />
<add name="ACTDesignTimeSwitch" value="1" />
<add name="ACTExtendedSwitch" value="0" />
<add name="ACTReportingSwitch" value="1" />
<add name="ACTGDISnapshotSwitch" value="1" />
<trace autoflush="true">
<add name="ACTTraceLogger" type="Act.Shared.Diagnostics.TraceLogger, Act.Shared.Diagnostics, Version=, Culture=neutral, PublicKeyToken=ebf6b2ff4d0a08aa" />
<SmartList profile="static" fetchsize="50" cacheleasetime="900000" misspolicy="1" />
<Installation installedLanguage="en-US" />
<Messaging TTL="1" />
<!-- Changing SQLServerMemoryManager operationLevel to 1 will forcibly
clear the SQL Server cache at the designated points.
However, this will negatively affect performance. -->
<SQLServerMemoryManager operationLevel="0"
<!-- Make sure we have exact same following settings in Act.Outlook.Sync.exe.config-->
<type type="Act.Outlook.Service.Interfaces.IConnector,Act.Outlook.Service.Interfaces" mapTo="Act.Outlook.Service.Desktop.Connector,Act.Outlook.Service.Desktop"/>
<type type="Act.Shared.Sync.IApplicationService,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.ApplicationService,Act.Outlook.Win.Integration"/>
<type type="Act.Shared.Sync.IActivityService,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.ActivityService,Act.Outlook.Win.Integration"/>
<type type="Act.Shared.Sync.IContactService,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.ContactService,Act.Outlook.Win.Integration"/>
<type type="Act.Outlook.Integration.IActivityAttachmentService,Act.Outlook.Integration" mapTo="Act.Outlook.Win.Integration.ActivityAttachmentService,Act.Outlook.Win.Integration"/>
<type type="Act.Shared.Sync.IHelpService,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.HelpService,Act.Outlook.Win.Integration"/>
<type type="Act.Outlook.Service.Interfaces.IOutlookSyncWizard,Act.Outlook.Service.Interfaces" mapTo="Act.UI.SyncSetup.OutlookSyncWizard,Act.UI.SyncSetup"/>
<type type="Act.Shared.Sync.IActAccess,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.ActAccess,Act.Outlook.Win.Integration"/>
<type type="Act.Shared.Sync.IIMAPService,Act.Shared.Sync" mapTo="Act.Outlook.Win.Integration.IMAPService,Act.Outlook.Win.Integration"/>
<add key="GoogleCalendarFeed" value=""/>
<add key="GoogleContactQueryFeed" value=""/>
<add key="GoogleContactRegistrationFeed" value=""/>
<add key="GoogleConsumerKey" value="anonymous"/>
<add key="GoogleConsumerSecret" value="anonymous"/>
<add key="GoogleOAuthGetRequestTokenUrl" value=""/>
<add key="GoogleOAuthAuthorizeTokenUrl" value=""/>
<add key="GoogleOAuthGetAccessTokenUrl" value=""/>
<add key="GoogleIMAPServer" value=""/>
<add key="GoogleIMAPPort" value="993"/>
<add key="GoogleIMAPURL" value="{0}/imap/"/>
<add key="GoogleIMAPScope" value=""/>
<type type="OAuth.Net.Common.ISigningProvider, OAuth.Net.Common"
mapTo="OAuth.Net.Components.HmacSha1SigningProvider, OAuth.Net.Components"></type>
<type type="OAuth.Net.Common.INonceProvider, OAuth.Net.Common"
mapTo="OAuth.Net.Components.GuidNonceProvider, OAuth.Net.Components" />


<!--Comment out this line to turn off Sage Integration in the product. -->
<module assemblyFile="Act.UI.SageIntegration.dll" moduleType="Act.UI.SageIntegration.SageIntegrationModule, Act.UI.SageIntegration" moduleName="SageIntegrationModule"/>




New Member
Posts: 3
Country: USA

Re: GDI Error on Windows Terminal Server

No other fix for this?  We have Business Care Gold, which is apparently worthless.

Bronze Elite Contributor
Posts: 2,119
Country: United_Kingdom

Re: GDI Error on Windows Terminal Server



try increasing the GDI pool by increments of 2000 (decimal not hex) to a maximum of 16,000. The following KB article shows the reg entry changes but the values are in Hex not decimal.



Vivek Gargav
Caldere Associates Ltd.
My Blog