在客户端应用程序中添加 SOAP 标头

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

使用本机 XML Web 服务时,SQL Server 支持 SOAP 扩展标头。通过使用支持的 SQL 选项和其他 SOAP 扩展标头(例如 SOAP 会话和 Web 服务安全性),这些标头可用于扩展和增强基于 SOAP 的应用程序。有关详细信息,请参阅SOAP 扩展标头

本主题提供一个示例类库,它实现 SQL Server 支持的每个可选的 SOAP 扩展标头。此库可以添加到现有的 Visual Studio 2005 SOAP 客户端项目。这包括用于发送本机 XML Web 服务请求的示例应用程序中提供的示例应用程序。

另外,如果您正在使用实现安全性或会话支持(通过对每项功能使用适当的 SOAP 扩展标头)的标头,我们建议您阅读下列主题:

注意注意

以下过程假定您已通过使用 Visual Studio 2005 创建现有 SOAP 客户端应用程序,并已添加对使用 SQL Server 创建的 HTTP SOAP 端点的 Web 引用,如使用 Visual Studio 2005 客户端发送 SOAP 请求 (C#) 中所示。

将 SOAP 扩展标头示例库添加到 Visual Studio 项目中

  1. 使用记事本复制并粘贴 SQL SOAP 标头示例类库的 C# 代码列表中的内容,然后用 SqlSoapHeader.cs 文件名将其保存在包含 SOAP 客户端项目文件的同一个文件夹中。

  2. 在客户端计算机上,从 Microsoft Visual Studio 2005 程序组启动 Microsoft Visual Studio 2005。

  3. 单击**“打开项目”**。

  4. 浏览并选择 SOAP 客户端项目 (.csproj) 文件。

  5. 在“解决方案资源管理器”窗口中,执行以下操作:

    1. 按名称选择项目,单击右键并指向**“添加”,再选择“添加现有项”**。

    2. 在**“添加现有项”**对话框中,从在步骤 1 中保存 SqlSoapHeader.cs 文件的位置找到并选中该文件。

    3. 选择“显示所有文件”并展开“Web 引用”节点,然后选择 Reference.cs 文件。

  6. 在“代码编辑器”窗口中,更新 Reference.cs 文件,在端点定义类中添加一个公共变量。此变量必须是与 SOAP 可选标头的类型相同的 SqlSoapHeader 类。

    例如,若要将 SqlSoapHeader.Security 类的名为 sqlSecurity 的公共属性变量添加到端点类定义 (sql_endpoint) 下的 Reference.cs 文件中,您需要添加以下代码行:

    public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol {
         public SqlSoapHeader.Security  sqlSecurity
    
  7. 将适当的 SoapHeaderAttribute 属性添加到您希望为其启用 SOAP 标头的 Web 方法中。

    例如,如果您正在实现 Security 类,您需要添加以下代码行:

    [System.Web.Services.Protocols.SoapHeaderAttribute("sqlSecurity")]
    public int UDFReturningAScalar() {...}
    
    注意注意

    在本例中,与 SoapHeaderAttribute 一起使用的参数值 sqlSecurity 必须与上一步中使用的变量名相对应。