There are many situations where we need to deploy WCF Services that we can use to interact with BizTalk, but if you’re constantly deploying to new systems, the process of manually creating and configuring them can become very time consuming and tedious. Leveraging the abilities of the BizTalk Deployment Framework (BTDF) we can automate this process along with your typical BTDF deployment.
In this guide we’ll step through how to configure BTDF to build the deployment of our existing WCF Services into the installer which BTDF creates for deployments.
In order to follow this guide it’s assumed that you have the following prerequisites:
A BizTalk solution and environment with BTDF installed
Already deployed WCF Services which you wish to replicate via deployment on the same machine
A basic knowledge of BizTalk, WCF, and IIS
First up we need to move our services into our solution folder. Simply…
We heavily use the BizTalk Deployment Framework to aid in the deployment of simple to complex BizTalk solutions. One of the greatest benefits is the ability to run custom deployment tasks and scripts. In previous blogs we have shown how to run a custom post deployment scripts in BTDF, today, we will show how custom scripts can be used to conditionally import a binding file during BTDF deployment.
A quick tip today – I came across an error while trying to enlist one of my send ports while deploying a BizTalk application using the amazing BizTalk Deployment Framework.
“Could not enlist Send Port ‘X’. Exception from HRESULT: 0xC00CE557 (Microsoft.BizTalk.SnapIn.Framework)
I recently found myself in need of adding a username and password to a BizTalk 2010 application binding file. By default, WCF bindings at least, do not save any password currently assigned to a WCF-Custom send port when you export the application bindings from within Management Console. In order to add a password to a BizTalk application binding file, you will have to edit the XML value for the <TransportTypeData> node of the desired send port and replace the password string:
<Password vt=”1″ />
with the below, substituting ‘MyPassword’ for the desired password.
The same can be done to a username, replacing the ‘Password” tag with “UserName”. This method can also be used in conjunction with BizTalk Deployment Framework (BTDF) variables specified at design-time in the SettingsFileGenerator.xml, or on deployment when specified as an _ENV_VARIABLE in the InstallWizard.xml file.
Recently I came across the need to execute a command and script after a Biztalk deployment using the BizTalk Deployment Framework (BTDF). In order to accomplish this BTDF allows the use of two specific deployment ‘Targets’ in the btdfproj file. Each one will allow the execution of custom deployment or undeployment steps. The ‘CustomDeployTarget’ tag allows for execution early on in the deployment process, while the ‘CustomUndeployTarget’ allows for execution early in the undeploy process.
In order to use either, you can add the following tags to the end of the btdfproj file after the <Target Name=”CustomRedist “></Target> element:
1: <Import Project=”$(DeploymentFrameworkTargetsPath)BizTalkDeploymentFramework.targets” />
3: The Deployment Framework automatically packages most files into the server install MSI.
4: However, if there are…
I recently started work on upgrading a BizTalk 2006 R2 application to BizTalk 2010. I upgraded the solution to VS 2010, deployed the application to my local BizTalk and verified everything was working.
The next step was to start work on automating the build and deployment process. A perfect opportunity to leverage the TFS and MSBuild support introduced in BizTalk 2009.
In order to build a BizTalk 2010 project, I need to install the BizTalk Project Build Components on the TFS build agent. Unfortunately, the client was using Windows Server 2003 R2 for the existing TFS 2008 Build Agent (BizTalk 2010 requires Windows Server 2008 and above.)
To work around this, we installed TFS 2008 Build on the BizTalk 2010 Development machine and added it as an Agent to the TFS server. (This is a short-term work-around until the client creates a dedicated…