我是BizTalk开发的新手,只使用了6到7周,所以请原谅我的天真。
我正在开发一个基本的BizTalk 2013应用程序,并准备好部署到测试环境。
我正在使用业务规则来定义出站传输位置,在完成所有转换之后,这会将数据发送到SQL Server中的存储过程,该存储过程会插入/更新记录:
mssql://.//db1?
当我们部署到测试/实时环境时,我们将无法将出站传输位置设置为本地计算机,因为数据库将存储在应用程序的不同服务器上。例如:
mssql://dbserver//db1?
我查看了BizTalk部署框架,了解是否可以根据环境修改业务规则,但无法找到任何内容。
所以我的问题是,管理业务规则的基于环境的设置的最佳(最低维护)方法是什么?最好使用BizTalk部署框架。
答案 0 :(得分: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