使用 WCF LOB 适配器 SDK 部署适配器

若要部署适配器,必须将适配器程序集安装到全局程序集缓存 (GAC) ,然后在 machine.config 文件中注册该适配器。

将适配器程序集安装到 GAC 中

在 Visual Studio 中使用“添加适配器服务引用插件”命令或使用“使用适配器服务加载项”功能在BizTalk Server中使用适配器之前,必须将程序集安装到 GAC 中。 只有具有强名称的程序集才能安装到 GAC 中。

注意

若要完成此过程,必须使用对 GAC 具有写入权限的帐户登录。 本地计算机的管理员帐户拥有这些权限。

配置强名称程序集密钥文件

  1. 在 Visual Studio 中,加载需要强名称的适配器项目文件。

  2. 打开 Visual Studio 命令提示。

  3. 在命令提示符下,从你要存储密钥文件的文件夹,键入以下命令,然后按 Enter 键:

    sn /kfile_name.snk

    示例: sn /k EchoAdapter.snk

    命令行上会显示一条确认消息“写入 <file_name.snk,> 的密钥对

  4. 在 Visual Studio 解决方案资源管理器中,右键单击项目,然后单击“属性”。

  5. 在左窗格中,展开 “通用属性”,然后单击“ 程序集”。

  6. 在右窗格中,滚动到“ 强名称 ”框。

  7. 在“ 强名称 ”框中,单击 “程序集密钥文件”旁边的字段,单击“浏览”按钮 (...) ,然后浏览到密钥文件。

  8. 依次单击密钥文件、“ 打开”和“ 确定”。

  9. 在 Visual Studio 菜单上,单击“ 生成”,然后选择“ 生成解决方案”。

注意

如果适配器程序集依赖于任何其他程序集,请确保这些引用的程序集使用强名称进行签名;否则将收到错误。

如果有源,可以使用强名称重新编译,如前所示。 如果引用程序集属于第三方,并且无法确保该程序集具有强名称,则可以反汇编,然后使用强名称重新组合程序集。

原始程序集将被覆盖,因此如果要保留原始版本,请确保先备份该程序集,然后再继续执行以下步骤。

使用 Microsoft 中间语言 (MSIL) 反汇编程序来反汇编程序集:

  • ILDASM thirdparty.dll /out:thirdparty.il

    使用 MSIL 汇编程序重新组合具有强名称的程序集:

  • ILASM thirdparty.il /dll /key=strongkeyfile.snk

在 GAC 中安装程序集

  1. 验证适配器是否已签名。

  2. 打开 Visual Studio 命令提示。

  3. 输入以下命令:

    gacutil.exe /if ”<程序集 .dll 文件>的路径”

  4. 此命令将程序集安装到 GAC,覆盖任何具有相同程序集名称的现有程序集。

在 Machine.config 中注册适配器

使用 WCF LOB 适配器 SDK 开发的适配器显示为 WCF 绑定。 有关详细信息,请参阅 Microsoft.ServiceModel.Channels.Common.AdapterBinding。 适配器绑定使用 <系统中的 bindingExtensions> 节 <向 WCF 注册。ServiceModel> 和适配器传输绑定元素使用系统中的 <bindingElementExtensions> 节 <向 WCF 注册。ServiceModel>。

可以使用文本编辑器手动编辑 machine.config 文件。

手动编辑 machine.config 文件

  1. 编辑位于 Microsoft .NET 配置文件夹中的 machine.config 文件。 为此,请单击“ 开始”,单击“ 运行”,键入记事本 <Windows 安装路径>\Microsoft.NET\Framework\<version>\CONFIG\machine.config,然后单击“ 确定”。

  2. 更新 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>  
    
  3. 关闭并保存 machine.config 文件。

    还可以使用 服务配置编辑器 修改 machine.config 文件。

使用服务配置编辑器编辑 machine.config 文件

  1. 打开 服务配置编辑器。 有关详细信息 ,请参阅服务配置编辑器

  2. 在树视图窗格中 (标记为 “配置) ”,展开节点树。 单击“ 高级 ”文件夹,单击“ 扩展” 文件夹,然后选择绑定扩展元素。

    服务配置编辑器。

  3. 创建新的绑定扩展。 单击“ 新建 ”按钮打开“扩展 配置元素编辑器 ”对话框。 在 “配置名称”中,输入扩展的唯一名称,例如 MyAdapterExtension

    扩展配置元素编辑器

  4. 单击“ 类型” 字段,然后单击省略号按钮 (...) 打开“ 绑定扩展类型浏览器 ”对话框。

  5. 单击全局程序集缓存 (GAC) 图标列出 GAC 中的 DLL。

  6. 单击适配器程序集。

    显示绑定扩展类型浏览器的屏幕截图。

  7. 单击“ 打开 ”按钮以选择程序集。

  8. 在“ 绑定扩展类型浏览器 ”对话框中,单击实现绑定集合元素的类型名称。

    显示选择实现绑定集合元素的类型名称的位置的屏幕截图。

  9. 单击“ 打开 ”按钮以选择类型。

  10. 单击“ 确定” 关闭“ 扩展配置元素编辑器 ”对话框。

  11. “绑定扩展编辑器”的详细信息窗格中,验证是否显示了绑定扩展。 下图突出显示了 MyAdapterExtension。

    添加了扩展的服务配置编辑器。

  12. 关闭 服务配置编辑器

另请参阅

使用 WCF LOB 适配器 SDK 部署适配器