3

我是 BizTalk 开发的新手,只正确使用了 6-7 周,所以请原谅我的幼稚。

我有一个正在开发的基本 BizTalk 2013 应用程序,并准备部署到测试环境。

我正在使用业务规则来定义出站传输位置,在完成所有转换后,这会将数据发送到 SQL Server 中的存储过程,该过程插入/更新记录:

mssql://.//db1?

当我们部署到我们的测试/实时环境时,我们将无法将出站传输位置设置为本地计算机,因为数据库将存储在应用程序的不同服务器上。例如:

mssql://dbserver//db1?

我查看了 BizTalk 部署框架,看看是否可以根据环境修改业务规则,但找不到任何东西。

所以我的问题是,管理基于环境的业务规则设置的最佳(最低维护)方法是什么?最好使用 BizTalk 部署框架。

4

1 回答 1

1

我将发布我用于将来参考的解决方案,并帮助将来遇到此问题的任何人。

在 BizTalk 部署框架中,可以将额外的 XML 文件添加到构建中,并以与根据环境对绑定文件进行预处理相同的方式对它们进行预处理。

以下是 deployment.btdfproj 文件中的一些片段。不要忘记,对于 BizTalk 部署框架,顺序至关重要:

<!-- Add the policy file as an additional item to the build -->
<ItemGroup>
    <AdditionalFiles Include="my_policy_file.xml">
      <LocationPath>..\$(ProjectName)\location_to_policy</LocationPath>
    </AdditionalFiles>
</ItemGroup>

<!-- Processes the additional XML policy files added to the MSI main build folder. -->
<ItemGroup>
    <FilesToXmlPreprocess Include="my_policy_file.xml">
         <LocationPath>..\</LocationPath>
    </FilesToXmlPreprocess>
</ItemGroup>

<!-- You still have to add the business rule to the build. It is overwritten later. -->
<ItemGroup>
    <RulePolicies Include="my_policy_file.xml">
        <LocationPath>..\$(ProjectName)\location_to_property</LocationPath>
    </RulePolicies>
</ItemGroup>

<!-- Towards the end of the file the pre-processed file overwrites the originally included policy file. -->
<Target Name="CopyXMLPreprocessedPoliciesToBRE" AfterTargets="PreprocessFiles">
    <copy sourceFiles="..\my_policy_file.xml" DestinationFolder="..\BRE\Policies"/>
</Target>

有关详细信息,请查看 BizTalk 部署框架站点上的此线程:https ://biztalkdeployment.codeplex.com/discussions/392801

于 2014-07-29T08:15:45.053 回答