February 2010

The property value is invalid. The value can't contain leading or trailing whitespace.

I have encountered this problem while setting up Microsoft exchange 2010. After jumping through all of the appropriate hoops, the installation process stops with an area that looks something like this: Organization Preparation Failed Error: The following error was generated when “$error.Clear(); $acceptedDomains = @{}; Get-AcceptedDomain | foreach { $domainName = $_.DomainName.ToString(); if ($acceptedDomains.Contains($domainName)) { Write-ExchangeSetupLog -Warning “Duplicate AcceptedDomain found. ‘$($acceptedDomains[$domainName])’ and ‘$($_.Name)’ both reference domain ‘$domainName’”; } else { $acceptedDomains.Add($domainName, $_.Name); }; }; function getSmtpTemplates ([string]$property) { $input | Select-Object -ExpandProperty $property | Where-Object {$_.PrefixString -eq “SMTP”} | Foreach-Object {$_.AddressTemplateString -replace “.*@”, “”}; } function addDomains ([Microsoft.Exchange.Data.Directory.SystemConfiguration.AcceptedDomainType]$domainType) { $domain = $null; $input | Where-Object {-not $acceptedDomains.ContainsKey($_)} | Where-Object {[Microsoft.Exchange.Data.SmtpDomainWithSubdomains]::TryParse($_, [ref] $domain)} | Foreach-Object { $name = $domain.ToString(); if ($name.Length -gt 64) { $name = $name.Substring(0, 64) }; if ($acceptedDomains.ContainsValue($name) ) {$name = [System.Guid]::NewGuid().ToString()}; new-AcceptedDomain -Name:$name -DomainName:$domain -DomainType:$domainType; $acceptedDomains[$domain.ToString()] = $name; }; } $emailAddressPolicies = Get-EmailAddressPolicy; $emailAddressPolicies | getSmtpTemplates “NonAuthoritativeDomains”… Read More »The property value is invalid. The value can't contain leading or trailing whitespace.

Scheduling a CRM System Job to Delete AsyncOperationBase junk from CRM 4.0 with CRM Automatic AsyncOperationBase Delete Tool

As you may be aware, there are some issues with CRM 4.0 and performance being inhibited by AsyncOperationBase table growth. There are a few blogs on the AsyncOperationBase problem here. 1. http://www.interactivewebs.com/blog/index.php/crm/slow-performance-or-large-database-file-in-ms-crm-asyncoperationbase/ 2. Performance is slow if the AsyncOperationBase table becomes too large in Microsoft Dynamics CRM 4.0 3. Deadlocks, Performance issues, MSCRM database growth, AsyncOperationBase table increase 4. Managing size of AsyncOperationBase table in CRM 4.0 These great resources lead us down a path of discovery that the is no automated way in CRM to manage this problem. There is however some code examples in the SDK that allow you to place an automated process into the CRM server that can be viewed and managed from within CRM. Only problem is that you need to be a coder to make the SDK process call and action the reoccurring job. I thought this was a bit “Microsoft”. Not being a… Read More »Scheduling a CRM System Job to Delete AsyncOperationBase junk from CRM 4.0 with CRM Automatic AsyncOperationBase Delete Tool

MS CRM Rollup 8 and 9 fail with Invalid length parameter passed to the LEFT or SUBSTRING function.

While installing MS CRM Rollup 8 or MS CRM rollup 9, we received an error that looked like this: ————————— Microsoft Dynamics CRM 4.0 Update Rollup 9 ————————— Action Microsoft.Crm.Setup.Common.Update.DBUpdateAction failed. Invalid length parameter passed to the LEFT or SUBSTRING function. Cannot insert the value NULL into column ‘InvoiceNumber’, table ‘sdia_MSCRM.dbo.InvoiceBase’; column does not allow nulls. UPDATE fails. Invalid length parameter passed to the LEFT or SUBSTRING function. Cannot insert the value NULL into column ‘InvoiceNumber’, table ‘sdia_MSCRM.dbo.InvoiceBase’; column does not allow nulls. UPDATE fails. Invalid length parameter passed to the LEFT or SUBSTRING function. Cannot insert the value NULL into column ‘InvoiceNumber’, table ‘sdia_MSCRM.dbo.InvoiceBase’; column does not allow nulls. UPDATE fails. Invalid length parameter passed to the LEFT or SUBSTRING function. Cannot insert the value NULL into column ‘InvoiceNumber’, table ‘sdia_MSCRM.dbo.InvoiceBase’; column does not allow nulls. UPDATE fails. Invalid length parameter passed to the LEFT or SUBSTRING function. Cannot… Read More »MS CRM Rollup 8 and 9 fail with Invalid length parameter passed to the LEFT or SUBSTRING function.

Slow Performance or Large Database File in MS CRM AsyncOperationBase

  There is a lot of information online about the MS CRM performance issues and very large database file sizes. Without going into MS CRM (you can Google that) it is by design. Can you believe that! CRM is set to record everything that is going on, and for most people, most of the transaction logging in the AsyncOperationBase table is just junk. Now you would expect that there is a little in application sort of… clean up your junk… feature in CRM, but alas we are dreaming of some Apple product. For this reason, the database has to be manually cleared, or an auto process set to do this manually. So the situation before me now is a massive database of 20GB with almost 17 million transactions listed. This server I am looking at is Windows 2008, and the SQL server is also Windows 2008. These are the steps… Read More »Slow Performance or Large Database File in MS CRM AsyncOperationBase

Printer Fail due to a Mouse Problem

Call to IT Department Caller:                      Hi, our printer is not working. Customer Service:    What is wrong with it? Caller:                      Mouse is jammed. Customer Service:    Mouse? Printers don’t have a mouse. Caller:                      Mmmmm…….. oh really?… I will send a picture.

How to use button images in place of text send and receive in DNN Feedback Module

The Feedback Designer Module for DotNetNuke can easily have the text buttons replaced with images. These images can simulate buttons.   To make the change you simply: 1. Login as Host or Admin to your dnn site 2. Configure the module 3. from the menu, select “Modify Look and Feel”   4. From the Send / Reset Settings select “Image” from the Text of Button options 5. Select your images from your site directory 6 Save your changes

DotNetNuke.Services.Exceptions.PageLoadException: Failed to load viewstate Problem Solved / Fixed

An error has occurred. DotNetNuke.Services.Exceptions.PageLoadException: Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request. —> System.Web.HttpException: Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request. at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) at System.Web.UI.Control.LoadViewStateRecursive(Object savedState) at System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList… Read More »DotNetNuke.Services.Exceptions.PageLoadException: Failed to load viewstate Problem Solved / Fixed

Understanding the Bin directory in DotNetNuke

There are a bunch of folders that are setup in a new DotNetNuke folder. Admin App_Code App_Data App_GlobalResources Bin Controls DesktopModules Portals Providers to name a few. The bin or folder is a special folder in asp.net websites. It is a shared code folder that is set to have special security permissions. Putting compiled assemblies into the Bin folder can represent a security risk. If you wrote the code yourself and compiled it, then you know what the code does. However, you should treat compiled code in the Bin folder as you would treat any executable code. Be wary of compiled code until you have tested it and are confident that you understand what it does. Note these security aspects of putting compiled code into the Bin folder: Assemblies in Bin folder are scoped to the current application. Therefore, they cannot access resources or invoke code outside the current Web… Read More »Understanding the Bin directory in DotNetNuke

Windows Live Messenger on Multiple Monitors System Windows 7

I have a system that has multiple monitors and we use a great little application called ultramon that allows you to have a desktop tray on all monitors. The idea being that the monitor with the application running on it will have a desktop try icon to control the application. This is good to allow you to control applications from the system try on the appropriate monitor. It has bugged me that the Windows Live Messenger is the only program I run that kept a system try icon on the primary monitor and duplicated another icon on the second monitor where the program was running. But there is a solution. 1. Close Windows Live Messenger 2. Search for Live Messenger in the start menu, and right click and select Properties. 3. Select Compatibility Tab   4. Select run this program in compatibility mode for: Windows Vista This will put the… Read More »Windows Live Messenger on Multiple Monitors System Windows 7

Data capture in DotNetNuke Tell My Friend Module

Today we have released a new version of Tell My Friends, the dotnetnuke module that allows you to send a message from a website to a friend advising them that you like the site. This new feature works like this: In the settings are of the module you simply enable the “Enable Data Capture” feature: Then from the menu inside the module configuration, you will find a new menu item called “Messages” This is the area that displays the data capture area of the messages sent. You can search of an email address: Or export the data to an excel spreadsheet: This will allow the data to be used with the Bulk Emailer module for DotNetNuke, using the excel sheet to import a custom list and email people who have been sent a message from your site.

How to turn off NDR’s in Exchange 2003

Understanding non-delivery reports NDR or Non Delivery Reports are potentially a great way of telling a user that they made a typo with an email address and that the email could not be delivered. In a 1999 world, this would be fine. However we are in a world now where email servers are flooded with spam, and lots of it, replying to every junk email that is hitting all the imaginary email addresses on your server (support@, admin@ help@ etc) is not a good idea, and it causes what is known as backscatter. To avoid this back scatter of invalid email delivery from your server it is recommended that you turn off your Non Delivery Reports NDR. To do this in Exchange 2003 you need to perform the folloing: 1. Open Exchange System Manager 2. Expand Global Setting and Click on Internet Message Formats 3. In the right hand pane,… Read More »How to turn off NDR’s in Exchange 2003