使用 ATL Server 创建 XML Web services

下面的演练描述了使用 C++ 和 ATL Server 创建一个 XML Web services 的过程,该服务将用华氏计量的温度转换为摄氏温度。

ATL Server 使开发人员能够使用活动模板库以 ISAPI 扩展的形式轻松实现 XML Web services。

在本演练中,将完成以下操作:

  • 使用 ATL Server Web 服务项目模板创建 XML Web services。
  • 实现 XML Web services。
  • 部署 XML Web services。

若要完成本演练,需要访问满足创建 Web 项目的要求的计算机。

由于使用 ATL Server 的 XML Web services 不响应 HTTP-GET 或 HTTP-POST 请求,所以需要创建一个访问该 XML Web services 的客户端,才能浏览其功能。

创建 XML Web services 项目

Visual Studio 提供了一个 ATL Server Web 服务项目模板,帮助您使用 ATL Server 创建 XML Web services。

创建 ATL Server Web 服务项目

  1. 在“文件”菜单上指向“新建”,然后单击“项目”以打开“新建项目”对话框。
  2. 选择“Visual C++ 项目”文件夹,然后单击“ATL Server Web 服务”图标。
  3. 在“名称”框中键入 TempConvert4
  4. 单击“确定”启动“ATL Server 项目向导”。
  5. 在“ATL Server 项目向导”中,单击“完成”接受项目的默认值。

注意   您拥有创建组合的 DLL(它将 ISAPI 功能同应用程序代码组合)的选项。该选项位于向导的“项目设置”页上。不过,在本演练中,您将创建单独的 DLL。

向导创建一个解决方案,其中包含了两个单独的项目:一个处理程序项目和一个 ISAPI 扩展项目。

提示   “ATL Server 向导”在解决方案资源管理器中提供了一个 ReadMe.txt 文件,该文件描述生成的项目和文件。

  • 您将编写在处理程序项目(它随后将成为自定义处理程序 DLL)中提供 XML Web services 功能的代码。
  • 可以自定义用于在 ISAPI 扩展项目中创建 ISAPI 扩展 DLL 的代码。在此项目中,您会发现一个 ReadMe.txt 文件,该文件进一步解释了每个生成的文件的用途。在本演练中,不需要自定义 ISAPI DLL。

本演练的最后一步是创建部署项目。

实现 XML Web services

使用为处理程序类编写的代码提供 XML Web services 的功能。当服务器接收到对 XML Web services 的请求时,ISAPI 扩展将调用此代码。

添加 XML Web services 方法

  1. 在解决方案资源管理器中,找到 TempConvert4 项目的“头文件”文件夹,然后双击 TempConvert4.h 打开文件进行编辑。
  2. ITempConvert4Service 是 XML Web services 的接口定义。它支持一种声明为 ConvertTemperature 的方法。找到 ITempConvert4Service 的示例接口定义并将其替换为下面的代码:
__interface ITempConvert4Service
{
[id(1)] HRESULT ConvertTemperature(
     [in] double dFahrenheit,
     [out, retval] double* pdCelsius);
};
CTempConvert4Service 类提供 XML Web services 的实现。将向此类添加一个公共方法,并将该方法作为 XML Web services 的组成部分公开。
在同一文件 TempConvert4.h 中,找到 CTempConvert4Service 的示例接口定义并将其替换为下面的代码: 
class CTempConvert4Service :
     public ITempConvert4Service
{
public:
     [ soap_method ]
     HRESULT ConvertTemperature(
          /*[in]*/ double dFahrenheit, 
          /*[out, retval]*/ double* pdCelsius)
     {
          if (!pdCelsius)
               return E_INVALIDARG;
          *pdCelsius = ((dFahrenheit - 32) * 5) / 9;
          return S_OK;
     }
}; // class CTempConvert4Service
注意   位于接口和类定义之间的 ATL Server 属性 request_handlersoap_handler 
有助于简化提供 XML Web services 结构的任务。此外,soap_method 特性还能标识将哪个方法作为
 XML Web services 公开。
保存解决方案。 
在“生成”菜单上单击“生成解决方案”。 
 

部署 XML Web services

若要使 XML Web services 可由他人使用,必须将其部署到您希望支持的客户端可访问的 Web 服务器。若要将 XML Web services 部署到非开发服务器的服务器上,可以添加 Web 安装项目或者手动将所需的文件复制到目标服务器上。

 

使用 Web 安装项目部署 XML Web services

  1. 在“文件”菜单上指向“添加项目”,然后单击“新建项目”。
  2. 选择“安装和部署项目”文件夹,然后单击“Web 安装项目”。
  3. 在“名称”框中键入 TempConvert4WebSetup,然后单击“确定”。
    注意   默认情况下,在部署服务器上创建虚拟目录时,安装程序将使用部署项目名称。
  4. 在“文件系统编辑器”的左窗格中选择“Web 应用程序文件夹”。有关更多信息,
  5. 在“解决方案资源管理器”中右击 TempConvert4WebSetup,指向“添加”,然后单击“项目输出”。
  6. 在“添加项目输出组”对话框中,选择“内容文件”、“主输出”和“调试符号”。有关更多信息
    • “内容文件”组由 XML Web services 的剩余文件(如 TempConvert4.htm 和 TempConvert4.disco)组成。
    • “主输出”组由项目 DLL TempConvert4.dll 及其依赖项组成。
    • “调试符号”组由项目 PDB 文件 TempConvert4.pdb 组成。
  7. 单击“确定”。
  8. 在解决方案资源管理器中再次右击 TempConvert4WebSetup,指向“添加”,然后单击“项目输出”。
  9. 在“添加项目输出组”对话框中,将项目更改为 TempConvert4Isapi,然后选择“主输出”和“调试符号”。有关更多信息,请参见在文件系统编辑器中添加和移除项目输出
    • “主输出”组由项目 DLL TempConvert4Isapi.dll 及其依赖项组成。
    • “调试符号”组由项目 PDB 文件 TempConvert4Isapi.pdb 组成。
  10. 单击“确定”。
  11. 在“文件系统编辑器”的左窗格中,展开“Web 应用程序文件夹”,右击 bin,然后单击“删除”。
  12. 在“解决方案资源管理器”中,右击“TempConvert4WebSetup”项目,然后在快捷菜单上单击“生成”。

    该操作将在本地项目目录中创建一个 Windows 安装程序文件。在 Web 服务器上执行该文件即可安装此 XML Web services。

有关更多信息,

最后,若要创建访问此 XML Web services 的客户端应用程序,请参见下列内容之一:

    • 0
      点赞
    • 3
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值