使用 WCF LOB 适配器 SDK 部署适配器
若要部署适配器,必须将适配器程序集安装到全局程序集缓存 (GAC) ,然后在 machine.config 文件中注册该适配器。
将适配器程序集安装到 GAC 中
在 Visual Studio 中使用“添加适配器服务引用插件”命令或使用“使用适配器服务加载项”功能在BizTalk Server中使用适配器之前,必须将程序集安装到 GAC 中。 只有具有强名称的程序集才能安装到 GAC 中。
注意
若要完成此过程,必须使用对 GAC 具有写入权限的帐户登录。 本地计算机的管理员帐户拥有这些权限。
配置强名称程序集密钥文件
在 Visual Studio 中,加载需要强名称的适配器项目文件。
打开 Visual Studio 命令提示。
在命令提示符下,从你要存储密钥文件的文件夹,键入以下命令,然后按 Enter 键:
sn /kfile_name.snk
示例: sn /k EchoAdapter.snk
命令行上会显示一条确认消息“写入 <file_name.snk
,
> 的密钥对。在 Visual Studio 解决方案资源管理器中,右键单击项目,然后单击“属性”。
在左窗格中,展开 “通用属性”,然后单击“ 程序集”。
在右窗格中,滚动到“ 强名称 ”框。
在“ 强名称 ”框中,单击 “程序集密钥文件”旁边的字段,单击“浏览”按钮 (...) ,然后浏览到密钥文件。
依次单击密钥文件、“ 打开”和“ 确定”。
在 Visual Studio 菜单上,单击“ 生成”,然后选择“ 生成解决方案”。
注意
如果适配器程序集依赖于任何其他程序集,请确保这些引用的程序集使用强名称进行签名;否则将收到错误。
如果有源,可以使用强名称重新编译,如前所示。 如果引用程序集属于第三方,并且无法确保该程序集具有强名称,则可以反汇编,然后使用强名称重新组合程序集。
原始程序集将被覆盖,因此如果要保留原始版本,请确保先备份该程序集,然后再继续执行以下步骤。
使用 Microsoft 中间语言 (MSIL) 反汇编程序来反汇编程序集:
ILDASM thirdparty.dll /out:thirdparty.il
使用 MSIL 汇编程序重新组合具有强名称的程序集:
ILASM thirdparty.il /dll /key=strongkeyfile.snk
在 GAC 中安装程序集
验证适配器是否已签名。
打开 Visual Studio 命令提示。
输入以下命令:
gacutil.exe /if ”<程序集 .dll 文件>的路径”
此命令将程序集安装到 GAC,覆盖任何具有相同程序集名称的现有程序集。
在 Machine.config 中注册适配器
使用 WCF LOB 适配器 SDK 开发的适配器显示为 WCF 绑定。 有关详细信息,请参阅 Microsoft.ServiceModel.Channels.Common.AdapterBinding。 适配器绑定使用 <系统中的 bindingExtensions> 节 <向 WCF 注册。ServiceModel> 和适配器传输绑定元素使用系统中的 <bindingElementExtensions> 节 <向 WCF 注册。ServiceModel>。
可以使用文本编辑器手动编辑 machine.config 文件。
手动编辑 machine.config 文件
编辑位于 Microsoft .NET 配置文件夹中的 machine.config 文件。 为此,请单击“ 开始”,单击“ 运行”,键入记事本 <Windows 安装路径>\Microsoft.NET\Framework\<version>\CONFIG\machine.config,然后单击“ 确定”。
更新 machine.config 文件。 如果文件不包含 system.serviceModel 节,请在配置文件末尾、结束根标记之前添加以下部分。
注意
将“myAdapterBinding”、版本、区域性和其他特定于程序集的信息替换为适配器的信息。
<system.serviceModel> <extensions> <bindingExtensions> <add name="myAdapterBinding" type="Microsoft.Adapters.Samples.Echo.EchoAdapterBindingCollectionElement,EchoAdapter, Version=0.0.0.0, Culture=neutral, PublicKeyToken= fafafafafafafafa" /> </bindingExtensions> <bindingElementExtensions> <add name="echoAdapter" type="Microsoft.Adapters.Samples.Echo.EchoAdapterBindingElementExtension,EchoAdapter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=37f23b4adb996dcf" /> </bindingElementExtensions> </extensions> </system.serviceModel>
或 -
如果 machine.config 文件包含 system.serviceModel 节,请确定缺少哪些元素并添加它们,并将“MyAdapter”和其他信息替换为适配器的信息。
<extensions> <bindingExtensions> <add name="myAdapterBinding" type="Microsoft.Adapters.Samples.Echo.EchoAdapterBindingCollectionElement,EchoAdapter, Version=0.0.0.0, Culture=neutral, PublicKeyToken= fafafafafafafafa" /> </bindingExtensions> <bindingElementExtensions> <add name="echoAdapter" type="Microsoft.Adapters.Samples.Echo.EchoAdapterBindingElementExtension,EchoAdapter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=37f23b4adb996dcf" /> </bindingElementExtensions> </extensions>
关闭并保存 machine.config 文件。
还可以使用 服务配置编辑器 修改 machine.config 文件。
使用服务配置编辑器编辑 machine.config 文件
打开 服务配置编辑器。 有关详细信息 ,请参阅服务配置编辑器 。
在树视图窗格中 (标记为 “配置) ”,展开节点树。 单击“ 高级 ”文件夹,单击“ 扩展” 文件夹,然后选择绑定扩展元素。
创建新的绑定扩展。 单击“ 新建 ”按钮打开“扩展 配置元素编辑器 ”对话框。 在 “配置名称”中,输入扩展的唯一名称,例如 MyAdapterExtension。
单击“ 类型” 字段,然后单击省略号按钮 (...) 打开“ 绑定扩展类型浏览器 ”对话框。
单击全局程序集缓存 (GAC) 图标列出 GAC 中的 DLL。
单击适配器程序集。
单击“ 打开 ”按钮以选择程序集。
在“ 绑定扩展类型浏览器 ”对话框中,单击实现绑定集合元素的类型名称。
单击“ 打开 ”按钮以选择类型。
单击“ 确定” 关闭“ 扩展配置元素编辑器 ”对话框。
在 “绑定扩展编辑器”的详细信息窗格中,验证是否显示了绑定扩展。 下图突出显示了 MyAdapterExtension。
关闭 服务配置编辑器。