Friday 22 August 2014

Tuesday 5 August 2014

WIX : Check if the .Net 4.5.1 Framework is installed

You can check if the .Net Framework 4.5.1 is installed using the following instructions in your WIX file:

    
    <PropertyRef Id="NETFRAMEWORK45"/>
    <Condition Message='This setup requires the .NET Framework 4.5.1 installed.'>
      <![CDATA[Installed OR NETFRAMEWORK45 >= "#378675"]]>
    </Condition>

One thing to keep in mind though is that the release number of the .Net 4.5.1 Framework is different with respect to your operating system version.

For example, to check if the .Net 4.5.1 Framework is installed your Windows 2008 R2 Server, you would be using "378758" as the release number. If you are on a Windows Server 2012 R2 machine, the release number to use would be "378675".

See also: How to: Determine Which .NET Framework Versions Are Installed

Monday 21 July 2014

Composite UI Application Block (CAB) - Presenter is null - NullReferenceException

Problem:
While using the Composite UI Application Block (CAB), we encountered a NullReferenceException while accessing the Presenter property in one of our views. We were accessing the Presenter in the OnLoad() method of our view and strangely, the Presenter was not dependency injected on "time" hence generating an exception.

Cause:
We were initializing some UI controls in ours view's constructor. This was triggering the OnLoad() event of our view even if the Presenter property was not yet injected.

Solution:
We move the UI control initialization in the OnLoad() event.

Friday 18 July 2014

Migrating BizTalk 2006 R2 sources to BizTalk 2013 R2

Problem:
You cannot directly migrate BizTalk 2006 R2 sources to BizTalk 2013 R2.

Solution:
You need to convert your BizTalk 2006 R2 sources to BizTalk 2010 and finally convert from BizTalk 2010 to BizTalk 2013 R2

Thursday 17 July 2014

Migrating BizTalk 2006 R2 sources to BizTalk 2010 : Error converting project file. The element beneath element is unrecognized

Problem:
All my BizTalk 200 R2/Visual Studio 2005 solutions were correctly converted to BizTalk 2010 / Visual Studio 2010 with the exception of one solution where the conversion failed with the following error message:

"Error converting project file. The element <BIZTALK> beneath element <VisualStudioProject> is unrecognized."

It was not a problem with the BizTalk 2010 Developer SDK installation as I succeeded in converting other solutions.

People on the Internet accused the Development/Deployment/Debug/Release solution configurations to be the problem. The correction of my solution configuration did not resolve the conversion problem.

Solution:
Finally, after struggling about half a day, I tried the conversion using the Visual Studio /Upgrade command line and this worked !

devenv "MyBizTalk2006R2VS2005Solution.sln" /Upgrade

Cheers

Friday 11 July 2014

VDProj to WiX Converter error: A generic error occurred in GDI+

Error: VDProj to WiX Converter error: A generic error occurred in GDI+

Cause: WIX files found in TFS were not checked out. The following link http://stackoverflow.com/questions/11316322/bitmap-save-a-generic-error-occurred-in-gdi makes me think that bitmap files in WIX folders were not checked out.

Solution: After checking out all WIX folders and files and I successfully converted my VdProj to WIX

Wednesday 2 July 2014

WIX - error ICE30 The target file ... is installed in ... by two different components on an LFN system

Problem: I was getting the follwing error while building one of my WIX projects:

error ICE30 The target file ... is installed in ... by two different components on an LFN system

Solution: After investigating, it turns out that I had two files with the same name which were being included in the installation package. In my case, I could ignore this error by doing the following actions on my WIX project:

1. Right-click on the WIX project, choose properties
2. GO to the "Tools Settings Tab"
3. In the "Suppress specific ICE Validation", type "ICE30"

Wednesday 25 June 2014

BizTalk - Microsoft.XLANGs.Engine - NullReferenceException

After restoring our BizTalk server's databases, we started getting the following exception whenever a new message was injected in the workflow:

Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'Exane.Pacifique.Flow.Stp.Integration.F1.Maps.OrcSplitFidessaF1(ac5c1df6-6abc-1028-2575-32e9b479eab6)'.
The service instance will remain suspended until administratively resumed or terminated.
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.
InstanceId: 097dc51b-e2b5-43ad-a4c3-269c14f29390
Shape name: SendPivot
ShapeId: 49177e1a-66c3-4354-8d53-419cd55de9ef
Exception thrown from: segment 1, progress 34
Inner exception: Object reference not set to an instance of an object.
       
Exception type: NullReferenceException
Source: Microsoft.XLANGs.Engine
Target Site: Void Write(Byte[], Int32, Int32)
The following is a stack trace that identifies the location where the exception occured

   at Microsoft.XLANGs.Core.StringCompressionStream.Write(Byte[] byteArray, Int32 offset, Int32 count)
   at System.IO.BinaryWriter.Write(String value)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryWriter.WriteAssembly(String typeFullName, Type type, String assemblyString, Int32 assemId, Boolean isNew, Boolean isInteropType)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetAssemblyId(WriteObjectInfo objectInfo)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
   at Microsoft.XLANGs.Core.ObjectSerializer._serialize(Object graph, StringLookup sl)
   at Microsoft.XLANGs.Core.ObjectSerializer.SerializeStateManager(IStateManager stateMgr, StringLookup lookup)
   at Microsoft.XLANGs.Core.Service.Persist(Boolean dehydrate, Context ctx, Boolean idleRequired, Boolean finalPersist, Boolean bypassCommit, Boolean terminate)
   at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)
   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)
   at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, Context cxt, Segment seg, ActivityFlags flags)
   at Exane.Pacifique.Flow.Stp.Integration.F1.Maps.OrcSplitFidessaF1.segment1(StopConditions stopOn)
   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

       
 For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

We restarted both our of SQL and BizTalk servers but in vain.

We succeeded in correcting the problem by redeploying all of our applications in BizTalk.





Monday 16 June 2014

BizTalk : PersistenceException exception occurred while the XLANG/s runtime enlisted a service

Error message:Exceptions.Types.PersistenceException

Possible cause: Not enough dosk space on the SQL Server hosting the BizTalk databases.

Solution: Check BizTalk databases backup sizes if stored on the same SQL Server and eventually do some disk cleanup