如何动态设置已使用的 Web Services 的 URI

为已使用的 Web Services 创建 Web 端口时,您可以选择动态端口绑定。 选择动态端口绑定时,必须在运行时设置已使用的 Web Services 的 URI。 选择的 URI 必须调用与创建 Web 端口类型所使用的 Web Services 具有相同 Web 代理的 Web Services。

注意

本主题介绍如何通过编程方式在业务流程中设置动态 SOAP 发送端口属性。 但是,无论发送端口为静态还是动态,您都可以在业务流程或自定义管道组件中设置这些属性。 有关自定义管道组件的详细信息,请参阅 开发自定义管道组件

相较于非 Web 端口的动态端口绑定而言,Web 端口的动态端口绑定具有不同行为。 为非 Web 端口选择动态绑定时,不能使用 SOAP 适配器。

使用动态 Web 端口来使用 Web Services 时,发送端口属性设置为默认值。 其中一些值在内部设置,其他值默认为 SOAP 适配器处理程序 属性页中设置的值。 您可以在使用动态发送端口时在业务流程中覆盖这些值。 有关详细信息,请参阅 使用 Web 服务时的注意事项

动态更改已使用 Web 服务的 URI

  1. 添加 Web 端口,如 如何添加 Web 端口中所述。 但是,不要选择 “立即指定 端口绑定”,而是选择 “动态 端口绑定”,如下图所示。

    显示“端口绑定”屏幕的图像。

  2. 在调用使用的 Web 服务的业务流程中,在已连接到 Web 端口的发送形状之前添加表达式形状。

  3. “表达式” 形状中,添加类似于以下内容的表达式:

    myWebPort(Microsoft.XLANGs.BaseTypes.Address) = "http://orders/myCompany.asmx";  
    

注意

您可以从不同位置(包括传入消息、SQL 数据库或业务线应用程序)检索在 BizTalk 表达式编辑器中使用的 URI。

动态修改发送端口属性

  1. 在用于 构造 Web 消息 的“构造消息”形状中,添加“ 消息分配” 形状(如果不存在)。

  2. “消息分配” 形状中,添加类似于以下内容的表达式:

    myWebMessage(SOAP.UseSSO) = true;  
    

    SOAP 发送端口的所有属性都使用 SOAP 命名空间。

    下表列出了可在使用动态 Web 端口时设置的 SOAP 发送端口属性。

属性名称 类型 说明
AuthenticationScheme 字符串 用于调用 Web Services 的验证方法

默认值:Anonymous

其他允许的值:Basic、Digest、NTLM
用户名 字符串 为访问目标 Web Services 而指定的用户名。

默认值:空白
密码 字符串 用于对服务器进行身份验证的用户密码。

默认值:空白
ClientCertificate 字符串 客户端安全套接字层 (SSL) 证书的指纹。

默认值:空白
UseSSO Boolean 指示此 Web 端口是否将使用单一登录 (SSO)。

默认值:False
AffiliateApplicationName 字符串 此 Web 端口将用于兑换客户端凭据票证的 SSO 应用程序的名称。

默认值:空白
UseHandlerSetting Boolean 指示此 Web 端口是否将使用 SOAP 发送处理程序 HTTP 代理设置。 注意: 如果设置了 UseProxy 上下文属性,则 忽略 UseHandlerSetting 上下文属性。

默认值:False
UseProxy Boolean 指示此 Web 端口是否将使用代理服务器访问目标 Web Services。 注意: 如果设置了 UseProxy 上下文属性,则 忽略 UseHandlerSetting 上下文属性。

默认值:False
ProxyAddress 字符串 用于 Web Services 调用的 HTTP 代理的地址。

默认值:从 SOAP 发送处理程序属性检索。
ProxyPort Integer 用于 Web Services 调用的 HTTP 代理的端口。

默认值:从 SOAP 发送处理程序属性检索。
ProxyUsername 字符串 为 HTTP 代理使用的用户名。

默认值:从 SOAP 发送处理程序属性检索。
ProxyPassword 字符串 为 HTTP 代理使用的密码。

默认值:从 SOAP 发送处理程序属性检索。
ClientConnectionTimeout Int32 HTTP 客户端连接的超时值。

默认值:与默认 ASP.NET HTTP 连接超时相同。
TypeName 字符串 指定包含要调用的 Web 方法的类的名称。

默认值:空白
MethodName 字符串 指定要调用的类的方法。 注意:若要以编程方式为静态 SOAP 发送端口配置 MethodName 属性,需要在 BizTalk Server 管理控制台中“SOAP 传输属性”对话框的“Web 服务”选项卡中将“方法名称”设置为[稍后指定]。 有关“SOAP 传输属性”对话框的详细信息,请参阅 UI 指南和开发人员 API 命名空间参考中的 SOAP 传输属性对话框 Web 服务选项卡。

默认值:空白
AssemblyName 字符串 标识要加载和执行的 .NET 类型和程序集。

默认值:空白
UnknownHeaders 字符串 指定未知 SOAP 标头的序列化列表。

默认值:空白
UserDefined 字符串 定义用户定义的类。

默认值:空白
UseSoap12 Boolean 指定此项可生成将支持 SOAP 1.2 协议的代理代码。 如果此属性为 False,则会生成符合 SOAP 1.1 的代理代码。

默认值:False

注意

ClientConnectionTimeout 设置外,这些值只能在使用 动态 端口绑定时动态设置。 使用 指定立即 端口绑定时,它们是只读的。 可以使用指定立即动态端口绑定来设置 ClientConnectionTimeout 设置。

另请参阅

SOAP 标头与使用的 Web 服务
创建 Web 端口