ATL服务器:用VC++创建高性能的Web应用程序和XML Web服务(2)

开发者在线 Builder.com.cn 更新时间:2007-11-05作者:佚名 来源:Microsoft

本文关键词: ATL 服务器 VC++ Web服务

运行中的ATL 服务器

  解释这种结构最好的方式是举一个例子:规范的"Hello World!"。此处显示的"Hello World!"应用程序是下一Visual C++发行版用于构建ATL服务器应用程序的开端。运行完ATL服务器应用程序向导后创建的在部分代码如此处所示。

  一个ATL服务器ISAPI DLL被用于每个Web站点。DLL作为IIS的扩展,允许引用了.SRF文件的URLs被DLLs所处理。ISAPI DLL是IIS注册的用于.SRF文件的默认处理器。在这个例子中,用户访问http://webserver/atlserver/HelloWorld.srf通过ISAPI DLL初始化.SRF文件的处理过程。ISAPI DLL 通过 CisapiExtension类完成它的实现。ISAPI扩展通过IserviceProvider接口提供来自ISAPI扩展的服务以请示处理对象。ISAPI可能提供的一些服务是会话服务,每线程数据库链接,浏览器功能服务,及一些缓冲服务,包括模板,DLL,和二进制大对象(BLOB)缓冲。如果在ATL服务器应用程序向导选中了,ATL服务器将自动为开发人员构建一个ISAPI DLL。开发人员可以根据期望的定置等级,修改生成的ISAPI DLL的默认代码,但这并不是必需的。

  .SRF文件驻留在Web服务器上,它定义了网页如何布局,由ATL服务器应用程序DLLs生成的动态内容如何使用。.SRF文件的内部内容是大多数开发人员所熟悉的;他们象HTML文件,但有一些值得注意的附加部分。

{{handler HelloWorld.dll/Default}}
<html >
< head >
< title >}< /title >
< /head >
< body >
< h1 >}< /h1 >

}

< /body >
< /html >

表 1. HelloWorld.srf文件的内容

  此.SRF文件的最上一行指出,由这个文件调用的代码位于HelloWorld DLL中,而HelloWorld DLL是为名为"'Default'"的C++对象提供一个接口。注意,此处使用了两对大括号。在SRF文件中,这两对大括号叫作代替标记。这些大括号中的内容包含了描述指示和/或在文件上部的处理器标记中命名的C++对象的方法名。} 和 }替代标记指定了"'Default'"对象(此对象将被调用以提供动态内容)的功能。

  也许你已经注意到了,.SRF文件将HTML页布局与产生动态内容的代码区分开来。借助于ATL服务器,网页设计器可以在需要动态内容的地方,使用HTML编辑工具如Visual Studio .NET?位置标签对网页进行设计和布局。这些标签与由Visual C++创建的服务器端应用程序DLLs内的代码相对应。对代码进行处理的开发人员可以这样做,而不必关心网页中布局或静态文本的偶尔变化。

查看本文来源

用户评论

  • 用户名
  • 评论内容