BizTalk WCF Service Publishing Tool

30. July 2010

As always, using the BizTalk wizards frustrates you and makes you want to tear out the last string(s) of hair.

At least the BizTalk WCF Service Publishing Command line tool is some help. It's from the 2006r2 release, but also a part of the 2010 (beta) decumentation.

 http://technet.microsoft.com/en-us/library/bb245933(BTS.70).aspx , so even though the download says BizTalk 2006. It works fine with newer versions, and is a huge time saver when updating WCF publications. Thanks to Lars for giving me a hint ;)

Kasi Srinivasan, has provided a great example

http://geekswithblogs.net/kasi/archive/2009/02/12/automating-the-biztalk-wcf-service-publishing-wizard.aspx

Kasi' link is broken. This one works at the moment :

http://go.microsoft.com/fwlink/?LinkId=92955

 

BUT BUT BUT, It doesn't work with BizTalk Server 2010 Beta at least :

I guess it is because BizTalk 2010 is build on .net 4.0 and the console is build on an earlier framework.

 

Let hope MS can fix it before the BizTalk 2010 release. (Open project, change target framework to 4.0, Build and publish)

 

 


Michael Høtoft  

BizTalk Server ,

WCF.Action to BTS.Operation Pipeline component

29. July 2010

In a WCF Basic Http Adapter Messaging "ONLY" scenario we have a problem with "mapping" Receive Soap action with the Send Soap actions.

A simple and pratical workaround is to make one send port for each action and make a filter based on receive location and WCF.Action.

It's a mess, and in a heavy biztalk scenario with 100 services and each with 10 operations you would be drenched in send ports.

So custom pipelines to the rescue and the BtsActionMapping to the rescue.

<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="SubmitMessage" Action="dk.xxxxx.integration.BizTalkWCFTest/OneWayContractTest/WriteMessageToEventlog" />
  <Operation Name="SubmitMessage2" Action="dk.xxxxx.integration.BizTalkWCFTest/OneWayContractTest/DoStuffNOW" />
</BtsActionMapping>

Unfortunately the BtsActionMapping only resolves on the property BTS.Operation. Which derives from the Orchestration port name.  Im trying to avoid orchestrations. The solution is quite simpel :

A custom pipeline compoent that grabs the WCFAdapter Action property and promotes it to BTS.Operation.

 public Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(Microsoft.BizTalk.Component.Interop.IPipelineContext pc, Microsoft.BizTalk.Message.Interop.IBaseMessage inmsg)
        {
            //extract the WCF action value
            Object oValue = inmsg.Context.Read("Action""http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties");
            if (oValue != null)
            {
                inmsg.Context.Promote("Operation""http://schemas.microsoft.com/BizTalk/2003/system-properties",oValue);
            }
            
            return inmsg;
        }

Lo and Behold, One Receive Port, One Send port, and one pipeline component to bind them all..(in darkness !!!)

Awesome !

 


Michael Høtoft  

BizTalk Server , , ,

SharePoint 2010 Solution Architecture

14. July 2010

 

The last copuple of months I have been building a SharePoint 2010 solution using SPMetal (LinqToSharePoint) and the SharePoint Lists as model layer.

 

 

The cool part is, that it can be deployed as one SharePoint sitedefintion. No need to create and connect to seperate applikation databases. It's all SharePoint ;)

the not so cool part is, that we rely entirely on the SharePoint engine to handle the model layer. Depending on your code and requirements performance is a potentiel issue. So remember to do early technological proofs if you try to build it this way.

 

 


Michael Høtoft  

Sharepoint Server , ,

This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded

6. July 2010

Im building some custom map helpers for BizTalk 2010, and when i tried to add the to the gac I got the following error message :

 

This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded !

The reason being that with BizTalk 2010 you have to use the new .net 4.0 Gac util. Time update all those scripts ;)

 

Fore more details, of where to find it etc. se this post : http://community.dotnetwork.it/Excentric/archive/2010/06/18/this-assembly-is-built-by-a-runtime-newer-than-the.aspx

 

Btw, you might need to download the win7 SDK tool too ;)

 


Michael Høtoft  

.Net, BizTalk Server, Visual Studio 2010 ,

Biztalk 2009 / Visual Studio 2008 Hotfix for various IDE issues

5. July 2010

It is actually back from December, but this is a must-have hotfix when working with Biztalk 2009 and posting it for future reference:

http://support.microsoft.com/kb/977428


Christian Staerk  

BizTalk Server, News