dtc*_*dtc 8 biztalk biztalk-2009
我正在开发一个BizTalk项目,并且不了解安装(双击)和导入(使用biztalk管理控制台)的原因.
我有一个BizTalk项目,我添加了绑定到它的资源并导出了一个msi文件.现在我想在另一台服务器上安装该应用程序.
据我所知,这是MSI安装的作用:
但是,这是我的问题:
我确定我缺少msi提供的功能/配置,但有人可以帮助我理解为什么msi需要安装并导入到biztalk中以及为什么当你uninistall它没有完全卸载它安装的所有东西?
Max*_*lle 12
部署BizTalk解决方案时需要执行两项操作.
为什么部署BizTalk解决方案是一个两步操作?
首先,组成您的解决方案的BizTalk程序集必须注册到BizTalk管理数据库.这将允许BizTalk知道什么是Schemas,Maps,Pipelines和Orchestrations.
这是通过将Windows Installer程序包导入BizTalk来完成的.
请记住,典型的BizTalk平台通常由许多物理服务器组成.但是,BizTalk组中的所有服务器共享一个BizTalk管理数据库.
因此,整个BizTalk组需要执行一次导入操作.
其次,已经注册到BizTalk的BizTalk程序集需要在某处实际存在.因此,必须将它们安装到文件系统中.
这可以通过双击Windows Installer程序包来完成.
请注意,需要在属于BizTalk组的任何物理服务器上重复安装操作.而且,因为BizTalk管理数据库中只有一个定义是什么程序集是解决方案的一部分,这就解释了为什么必须将BizTalk程序集安装到全局程序集缓存(GAC).
请注意,到目前为止,规则很简单:
但是,我们只处理了BizTalk程序集.BizTalk解决方案在运行时需要的所有其他程序集或其他依赖项(业务规则定义,COM对象,绑定,配置文件等)不在此两步操作中.
环境间部署
但是,当解决方案运行时,这些依赖项也必须适当地存在于每个BizTalk服务器上.
这就是为什么大多数这些文物也注册到BizTalk管理数据库的原因.但这一次,只有在创建BizTalk解决方案的Windows Installer程序包时才会引入依赖项,以便可以在目标服务器上正确安装这些依赖项.
为什么在卸载时不会从GAC中删除BizTalk程序集?
作为一般经验法则,注册到全局程序集缓存的程序集被视为共享资源.因此,出于安全原因,卸载时不会从GAC中删除BizTalk程序集.考虑当多个应用程序使用自定义BizTalk管道时会发生什么.在这种情况下,BizTalk管道必须是单独的,通用的BizTalk应用程序的一部分.卸载此共享BizTalk应用程序将破坏依赖此管道的所有其他应用程序...
当将资源添加到BizTalk管理数据库中,你可以选择有组件安装到GAC在进口或在安装时间.我强烈建议不要使用" GacOnImport "功能,这在大多数典型的多服务器BizTalk组中没有意义.
但是,对于Windows Installer程序包,有一种更简单,最灵活的方法来自定义可以对BizTalk程序集或其他依赖项执行的操作.这是通过预处理和后处理脚本完成的.
这些脚本允许在导入/安装操作期间的四个特定时间运行任意应用程序.
如果要在卸载时从GAC中删除程序集,则可以在操作的"安装前"阶段安排相应的命令行.
导入MSI文件会将MSI中的程序集添加到BizTalk数据库中.如您所述,运行MSI会将程序集添加到GAC.两者都需要"安装"BizTalk应用程序.只有BizTalk程序集必须导入到BizTalk管理数据库中.BizTalk使用的所有DLL必须位于GAC中.
有可能值得一看http://msdn.microsoft.com/en-us/library/aa578463(v=BTS.10).aspx,看看你可以为你的每个资源自定义安装和导入的行为BizTalk应用程序.这将允许您只导入MSI,并将程序集添加到数据库并将它们安装在GAC中,这样您的添加/删除程序就不会出现其他混乱.
至于为什么在卸载已安装的MSI时不会从GAC中删除DLL,我可以告诉您这是设计的.如果您在MSDN上的这个页面看看http://msdn.microsoft.com/en-us/library/aa562001(v=bts.10).aspx你可以看到,如预期这种行为描述.这MSDN文章还包含链接,在如何从GAC,这也解释了如何使用后处理脚本有你的MSI实际上从GAC于MSI的卸载删除程序集删除程序集.
| 归档时间: |
|
| 查看次数: |
5204 次 |
| 最近记录: |