如何配置 SOAP 接收位置

可以通过编程方式或使用 BizTalk Server 管理控制台来配置 SOAP 接收位置。

如何通过编程方式配置 SOAP 接收位置

BizTalk 资源管理器对象模型使你能够以编程方式创建和配置接收位置。 BizTalk 资源管理器对象模型公开具有 TransportTypeData 读/写属性的IReceiveLocation 接收位置配置接口。 此属性以 XML 字符串的名称-值对形式接受 SOAP 接收位置配置属性包。 若要在 BizTalk 资源管理器对象模型中设置此属性,必须设置 IReceiveLocation 接口的 InboundTransportLocation 属性。

无需设置 IReceiveLocation 接口的 TransportTypeData 属性。 如果未设置该属性,则 SOAP 适配器将使用 SOAP 接收位置配置的默认值,如下表所示。

下表列出了可在 SOAP 接收位置中为 BizTalk 浏览器对象模型设置的配置属性:

属性名称 类型 说明
URI 字符串 在部署服务器上包含 Web Services 的虚拟目录。
AddressableURI 字符串 包含整个可调用 URL 的公用地址字段。

默认值:空白
UseSSO Boolean 指定 SOAP 适配器是否会向此接收位置收到的消息颁发单一登录票证。

默认值:False

请使用以下格式设置属性:

receiveLocation.TransportTypeData = "<CustomProps><UseSSO vt=\"11\">-1</UseSSO></CustomProps>";  

URIAddressableURI 属性是使用接收位置对象的 AddressPublicAddress 属性设置的。

以下代码段显示了如何创建 SOAP 接收位置:

// Use BizTalk Explorer object model to create new SOAP receive location.  
string server = System.Environment.MachineName;  
string database = "BizTalkMgmtDb";  
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);  
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll  
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();  
explorer.ConnectionString = connectionString;  

// Add a new Request-Response port  
ReceivePort receivePort = explorer.AddNewReceivePort(true);  
receivePort.Name = "SampleReceivePort";  
receivePort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];  

// Add primary SOAP receive location  
ReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();  
receiveLocation.Name = "SampleReceiveLocation";  
receiveLocation.Address = "/PurchaseOrder/POOrchestration.asmx";  
receiveLocation.TransportType = explorer.ProtocolTypes["SOAP"];  
receiveLocation.TransportTypeData = "<CustomProps><UseSSO vt=\"11\">-1</UseSSO></CustomProps>";  
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];  
foreach (ReceiveHandler receiveHandler in explorer.ReceiveHandlers)  
{  
if (receiveHandler.TransportType.Name == receiveLocation.TransportType.Name)  
{  
receiveLocation.ReceiveHandler = receiveHandler;   
}  
}  

// Save  
explorer.SaveChanges();   

如何使用 BizTalk Server 管理控制台配置 SOAP 接收位置

您可以在 BizTalk Server 管理控制台中设置 SOAP 接收位置适配器变量。 如果未设置接收位置的属性,则使用 BizTalk Server 管理控制台中设置的默认接收处理程序值。

注意

在完成以下过程之前,必须已添加接收端口。 有关详细信息,请参阅 如何创建接收端口

配置 SOAP 接收位置的变量

  1. 在BizTalk Server管理控制台中,依次展开“BizTalk Server管理”、“BizTalk 组”和“应用程序”,然后展开要在其中创建接收位置的应用程序。

  2. 在BizTalk Server管理控制台的左窗格中,单击“接收端口”节点。 随后,在右窗格中右键单击与现有接收位置关联的接收端口或要与新接收位置关联的接收端口,然后单击“属性”

  3. 在“ 接收端口属性 ”对话框的左窗格中,选择“ 接收位置”,然后在右窗格中双击现有接收位置,或单击“ 新建”创建新的接收位置。

  4. 在“接收位置属性”对话框的“类型”旁边的“传输”部分中,从下拉列表中选择“SOAP”,然后单击“配置”。

  5. 在“ SOAP 传输属性 ”对话框中,执行以下操作:

    使用此选项 要执行此操作
    虚拟目录和 Web Services .asmx 文件 指示由 BizTalk Web Services 发布向导创建的 .asmx 文件。

    此消息的格式类似于以下格式:

    /PurchaseOrder/POOrchestration.asmx

    .asmx 文件的完整位置所在的位置 http://localhost/PurchaseOrder/POOrchestration.asmx. 注意: 发送端口或接收位置的 URI 不能超过 256 个字符。
    公共地址 指定此接收位置的完全限定 URI。 此属性的值是服务器名和虚拟目录的组合。 指定的 URI 应指定在向 BizTalk Server 发送消息时贸易合作伙伴要连接到的公共网站 URL。

    此信息是可选的,BizTalk Server 并不使用。 管理员可使用此参数记录与接收位置相关联的公共 URL。
    使用单一登录 指示 SOAP 适配器使用企业单一登录。 注意: BizTalk Web Services 发布向导允许使用 SharePoint Portal Server 单一登录;此属性仅启用企业单一登录。
  6. 单击 “确定”

  7. 在“ 接收位置属性 ”对话框中,输入相应的值以完成接收位置的配置,然后单击“ 确定 ”保存设置。 有关“接收位置属性” 对话框的信息,请参阅 如何创建接收位置

    SOAP 接收位置使用的安全设置是在 IIS 中设置的。 默认情况下,SOAP 接收位置不设置为使用匿名身份验证。

    当 SOAP 客户端调用 Web Services 时,SOAP 适配器将使用匿名、基本、摘要或 Windows 集成身份验证来对 SOAP 客户端进行验证。 如果用户通过验证,则将用户上下文传递到接收处理程序。

注意

任何会导致 SOAP 与 HTTP 共享同一进程的 IIS 配置都是无效的。 对于每个进程,只能有一个独立的接收器。

更新虚拟目录以使用 ASP.NET 4.0

  1. 启动 Internet Information Services (IIS) 管理器。 依次单击“ 开始”、“ 所有程序”和“ Internet Information Services (IIS) 管理器”。

  2. 如果需要连接到远程 IIS 服务器,请右键单击“ Internet Information Services ”节点,然后单击“ 连接”。

  3. 如果需要,请键入远程 IIS 服务器的计算机名称和凭据。

  4. 展开其中包含要更新的网站或虚拟目录的服务器名称。

  5. 展开 “站点”。

  6. 展开 “默认网站”。

  7. 展开“默认网站”以查看网站下的虚拟目录。

  8. 右键单击要更新为使用 ASP.NET 4.0 的虚拟目录,单击“管理应用程序”,然后单击“高级设置”。应用程序池” 字段显示所选虚拟目录的应用程序池集。 单击 “确定”

  9. 在“Internet Information Services (IIS) 管理器”窗口中,单击“ 应用程序池”。 详细信息窗格显示服务器上的应用程序池列表。

  10. 右键单击步骤 8 中设置的应用程序池,然后单击“基本设置”。

  11. “编辑应用程序池 ”对话框中,更改以下内容:

    • .NET Framework版本4.0

    • 从托管管道模式经典

  12. 单击“确定”应用更改。

另请参阅

使用 Web 服务