Wednesday, March 4, 2015

WFFM 8.0 rev. 150224 update package installation Issue

Recently, I tried to upgrade sitecore 8.0 update-1 to Sitecore 8.0 update-2 with WFFM module update from WFFM 8.0 rev 141217 to WFFM 8.0 rev 150224

while in the wffm upgrade progress, at the final step, upgrade process breaks with following error.


Server Error in '/' Application.
--------------------------------------------------------------------------------
 Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Exception: Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[Exception: Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).]
   Sitecore.Diagnostics.Error.Raise(String error, String method) +129
   Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert) +432
   Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +67
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +141
   Sitecore.Pipelines.CorePipelineFactory.GetObjectFromType(String type, XmlNode processorNode) +144
   Sitecore.Pipelines.CoreProcessor.GetMethod(Object[] parameters) +124
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +351
   Sitecore.Nexus.Web.HttpModule.Application_Start() +175
   Sitecore.Nexus.Web.HttpModule.Init(HttpApplication app) +516
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +530
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

[HttpException (0x80004005): Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12979668
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest  ...

So, I take a look into Sitecore.WFFM.Service.dll by decoding it and found that a config entry in the /App_Config/includes/sitecore.WFFM.services.config file was pointing to non-existing namespace.

Then, I checked the standalone installation of WFFM 8.0 rev. 150224 package /App_Config/Includes config files and copy those files into my instance.
Then, ran the WFFM module upgrade again.
Everthing worked fine.

After informing the finding, sitecore has reported this as a bug and they will provide a fix for this in future.

Hope this helps to someong !

Saturday, February 28, 2015

Capabilities of Sitecore - February Meetup - Sitecore User Group Sri Lanka - Event Report

Our February Meetup was held on Wednesday, 11th February 2015.
This time, our topic was "Capabilities of Sitecore".

This time, our presenter was Mr. Matthew Tilbury. He is one of the directors at Codehouse Ltd and has a long standing relationship with Sitecore. He is also an expert on how to use Sitecore to enhance the customer experience in web sites as well as marketing.

Matthew did a great demonstration using own Codehouse website.

Some of the topics that he did includes,


  • Quick look into using Content Editor & Page Editor
  • How to use Personalization to improve visitor experience
  • Engagement Plans, Goals, Engagement Values, etc
  • Quick look into ECM


Our schedule was as follows

6:00 PM - 7:15 PM  - Capabilities of Sitecore by Matthew Tilbury & Q&A Session
7:15 PM - 8:00 PM  - Networking



This event turns out to be a great one with most of the participants are requesting more event in the future meetups.

Sitecore development in Sri Lanka is growing rapidly with three companies schedule to start Sitecore development in coming months. As SUGSL, we are very happy to contribute to Sri Lanka Sitecore community.

Hope to see you all in our next Meetup!

Friday, February 20, 2015

Common Domain field value change error - Sitecore EXM 3.0 Bug


When try to change "Common Domain" field value on /sitecore/content/home/email campaign item, it returns following error


Sitecore Version : 8.0 rev.150121
Email Experience Manager 3.0.0 rev. 150126

I tried this on a fresh installtion (with fresh sitecore and EXM) and it returned the same error.

So, Ticket is created to sitecore support (431963) and it was reported as a bug. They provide the following workaround

1. Open the \Website\sitecore modules\Shell\EmailCampaign\UI\Dialogs\SelectDomain.xaml.xml file;
2. Add the EnableViewState="false" attribute to the <EmailCampaign.SelectDomain> node:
<EmailCampaign.SelectDomain x:inherits="Sitecore.Modules.EmailCampaign.UI.Dialogs.SelectDomainPage,Sitecore.EmailCampaign" EnableViewState="false">
3. Restart IIS.

and Workaround fixed the issue.

Hope this will help someone!

Wednesday, February 18, 2015

Publishing and Link DB Rebuild error after upgrading to Sitecore 8.0

Recently, we run an upgrade test for our environment to sitecore 8.0 update-1.
After the upgrade, when we try to publish items in /home node, it returns following error
(When try to rebuild the link database for master, we are getting an error.)

13384 13:48:46 ERROR Exception
Exception: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Jobs.Job.ThreadEntry(Object state)

Nested Exception

Exception: System.FormatException
Message: Unrecognized Guid format.
Source: mscorlib
   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
   at System.Guid..ctor(String g)
   at Sitecore.Analytics.Data.TrackingField.<>c__DisplayClass21.<get_Events>b__20(XElement e)
  ......



TEMP SOLUTION :
We try to find the items that return an error when published, and deleted them and recreated them. Then, everything start to work again including publishing and linkDB rebuild.

SOLUTION :
Sitecore support get back to us and gave the reason for these issue.
Following are a summary of there reason and solution.

In Sitecore 6.5 Update-4 there was a change exactly related to the format how Tracking field stores data. See ref. 358378 in Release Notes (http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/ReleaseNotes/ChangeLog/Release%20History%20SC65.aspx).

Please review "Tracking" field of these items - it contained incorrect definition of page events. You can simply clear tracking field content for these items and reassign page event if needed.

Execute something like following query on Master database

select * from SharedFields where FieldId = '{B0A67B2A-8B07-4E0B-8809-69F751709806}' and Value not like '%{________-____-____-____-____________}%' and Value like 'event'

Such query returned values to verify - where 'id' attribute was missed.

Friday, January 30, 2015

My footsteps on Sitecore 7.5 Upgrade Steps

Recently, I worked on a Sitecore 7.5 upgrade project. Since it was released very recently, the documentation was not that clear. So, I had to ask lot of help/questions from Sitecore support also.

Anyway, with the help of Sitecore Support, we were able to do the sitecore 7.5 upgrade successfully. Following are the final order of upgrade steps that I came up with.



  1. Upgrade Sitecore CMS to 7.2 Initial Release
  2. Run ECM Upgrade tool (Email Campaign Manager v.2.2 rev.141007 upgrade tool)
  3. Upgrade Sitecore CMS to 7.5
  4. Run Analytics Data Optimization Tool
  5. Upgrade ECM
  6. Run Analytics Data Conversion Tool (with ECM and WFFM command line options). You also need to ..
    • copy ECM conversion plugin files directly inside the <Analytics data conversion tool folder>
    • copy WFFM conversion plugin files directly inside the <Analytics data conversion tool folder>\Plugins
  7. ECM Post Installation Steps
  8. Upgrade remaining modules


Hope someone will find this useful. :-)

Monday, January 19, 2015

Enter special characters as input to WFFM form fields

One of my colleagues asked me about how can we allow to enter special characters (like &) into WFFM form fields. When you try to submit special characters (ex: &, >, <) with WFFM form, it returns following error message.



Reason for this warning message is, Access Security Validation that is added to every WFFM form by default.



More than a year back, I had a ticket created for the same issue with sitecore support and following is the solution/workaround they provided.

** refer "UPDATE 17/11/2015" at the bottom of the page for new kb article

Sitecore Solution :

Remove the Assess Security Risk verification action from the web form:
1.In the Content Editor, on the ribbon, on the View tab, select the Raw Values check box.
2.Select the item of the web form that you want to edit.
3.In the Submit section, in the Check Actions field, remove the <li> node containing the ID of the Assess Security Risk action - {2D5B5061-747A-4477-BD41-E746EAFEB231}


But, I thought of looking for a different solution to solve this issue. So, I had a quick look into the Sitecore.Forms.Custom.dll file and saw that it is a small adjustment that we need to do to achieve our requirement.



So, copy the Sitecore.Form.Submit.AssessSecurityRisk class from Sitecore.Forms.Custom.dll and insert it to our own class.
Then, change/remove the characters that needed to be included from the validation code
Then, duplicate the "/sitecore/system/Modules/Web Forms for Marketers/Settings/Actions/Form Verification/Assess Security Risk" item



 Change the "Assembly" and "Class" field value to map our newly created custom class

This allow us to only remove the necessary characters from the "Assess Security Risk" validation and keep all other default validations intact.

Update :
When you need to edit the "Form Verification" field value, you need to change the content editor to display "Raw values" for the fields, and then replace the id value (marked in green color text) with the ID of the newly created custom Form Verification item.

<?xml version="1.0" encoding="utf-16"?><li xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  <g id="{10FE9225-5E6C-4896-9CD2-880D6D48C4CC}" displayName="Check Actions">    <li id="{2D5B5061-747A-4477-BD41-E746EAFEB231}" unicid="89F18F7C96F4469A9470057CE421A115">     <parameters></parameters>    </li>  </g></li>


UPDATE 17/11/2015 : 
Sitecore has come up with a solution which encodes these restricted characters when WFFM form is submitted.
https://kb.sitecore.net/articles/568572


Wednesday, January 14, 2015

Sitecore Modules Compatibility Table


I was in discussion with Sitecore Support regarding Sitecore 8 upgrade process and they point me to a very useful webpage. I found this webpage very useful and thought to share it with you. (Maybe you already know this :-D )



This page contains all the module compatibility with sitecore versions.