Midhun Mathew
Midhun Mathew

Reputation: 2217

Changing Host Instance in BizTalk Deployment Framework

I am using BizTalk Deployment Framework to deploy my application. It is working in local machine. I want to deploy in Test Environment and it should be using Visual studio not by MSI. I am not sure where to change the HostInstance name.

Upvotes: 1

Views: 269

Answers (2)

Dan Field
Dan Field

Reputation: 21661

To clarify a little further, here's an example of where you'd set the host name in PortBindingsMaster - note that it's a per artifact configuration (i.e. each orchestration, send port, and receive location has its own host specified). I completely agree with Johns-305, host names should definitely be the same across all environments - it makes life much easier and much less confusing (and you're less likely to introduce some deployment issue because you forgot to configure the right host name for TEST vs DEV). Just configure your dev environment to mirror TESt/PROD. And you should do this initially by exporting your bindings to be sure you get the correct Capabilities and ConfigurationClsid values.

For an Orchestration:

<Service Name="OrchestrationName" State="Started" TrackingOption="ServiceStartEnd MessageSendReceive OrchestrationEvents" Description="">
  <Ports>
      ...
  </Ports>
  <Roles />
  <Host Name="OrchHost" NTGroupName="${SsoAppUserGroup}" Type="1" Trusted="false" />
</Service>

You could replace the Name attribute value of the Host with your host variable name, e.g. ${OrchHostName} (assuming you have a line in your SettingsFileGenerator.xml with the first column name being OrchHostName).

For a ReceiveLocation:

<ReceiveLocation Name="rlocBlahBlah_FILE">
  ...
  <ReceiveHandler Name="ReceiveHost" HostTrusted="false">
    <TransportType Name="FILE" Capabilities="11" ConfigurationClsid="5e49e3a6-b4fc-4077-b44c-22f34a242fdb" />
  </ReceiveHandler>
</ReceiveLocation>

You could replace the Name attribute value of the ReceiveHandler with your host variable name, e.g. ${ReceiveHostName}.

For a SendPort:

<SendPort ...>
...
  <PrimaryTransport>
    ...
    <SendHandler Name="SendHost" HostTrusted="false">
      <TransportType Name="FILE" Capabilities="11" ConfigurationClsid="5e49e3a6-b4fc-4077-b44c-22f34a242fdb" />
    </SendHandler>
  </PrimaryTransport>
  <SecondaryTransport> <!-- if configured -->
    <SendHandler Name="SendHost" HostTrusted="false">
      <TransportType Name="FILE" Capabilities="11" ConfigurationClsid="5e49e3a6-b4fc-4077-b44c-22f34a242fdb" />
    </SendHandler>
  </SecondaryTransport>
   ...
</SendPort>

Secondary transport is not required and not configured by default, but should be taken into account if you're using it. You could replace the Name attribute of the SendHandlers with something like ${SendHandlerName}.

Upvotes: 1

DTRT
DTRT

Reputation: 11040

First, it's just better if the Host names are the same in DEV and all other environments. It makes things easier.

However, if you really need them to be different, you just have to configure the Host names as Settings, using the Settings file, so BTDF can dynamically set them at Deploy time.

For clarity, you should be using a .msi to deploy to TEST, not Visual Studio.

Upvotes: 3

Related Questions