Web 服务的声明
当在 ASP.NET 中创建 Web 服务时,将所需的 @ WebService 指令放置在文件扩展名为 .asmx 的文本文件的顶部。.asmx 文件和 @ WebService 指令一起使 Web 服务的 URL 地址与其实现相关联。然后,实现 Web 服务类,该类定义 Web 服务客户端可见的方法和数据类型。
可以将您定义的 Web 服务类直接包含在 .asmx 文件中,或包含在一个单独的文件中。如果使用一个单独的文件,则必须将该文件编译到程序集。或者,可以对实现 Web 服务的类应用 WebService 属性。实现 Web 服务的类可以从 WebService 类派生。
通过将可选的 WebService 属性应用于实现 Web 服务的类,可以为 Web 服务设置默认 XML 命名空间,同时添加一个描述 Web 服务的字符串。强烈建议在使 Web 服务可被公共使用之前更改此默认命名空间(最初为 http://tempuri.org)。这非常重要,因为该 Web 服务必须与其他由于疏忽使用默认命名空间 (<http://tempuri.org/>) 的 Web 服务区分开。
实现使用 ASP.NET 创建的 Web 服务的类还可以从 WebService 类派生,以获得对公共 ASP.NET 对象(例如 Application、Session、User 和 Context)的访问权限。Application 和 Session 属性提供对 Web 应用程序或特定会话的整个生存期存储和接收状态的访问权限。有。如果启用了身份验证,User 属性包含 Web 服务调用方的标识。通过该标识,Web 服务可以确定该请求是否获得授权。Context 属性提供对所有有关该 Web 服务客户端请求的 HTTP 特定信息的访问权限。有关 Context 属性的更多信息,请参见 WebService.Context 属性 。
Web 服务方法的定义
实现 Web 服务的类的方法不会自动具有接收 Web 服务请求并发回响应的功能,但是对于使用 ASP.NET 创建的 Web 服务,添加该功能很简单。将 WebMethod 属性应用于公共方法。可通过 Web 进行通信的 Web 服务类的方法称为 Web 服务方法。
Web 服务方法是 Web 服务所使用的消息基础结构的重要组成部分。也就是说,默认情况下,客户端和 Web 服务使用消息(特别是 SOAP 消息)进行通信。客户端向 Web 服务发送 SOAP 请求,Web 服务方法通常返回 SOAP 响应。Web 服务使用操作定义所接受的消息类型,如 Web 服务描述语言 (WSDL) 所定义。这些操作与 Web 服务中的每个 Web 服务方法相互关联。虽然这些 Web 服务方法中的每一个都使用类的方法在 ASP.NET 中进行定义,但是一定要意识到,最终通过网络传输的数据必须被序列化为 XML。同样,一定要记住,Web 服务不是用来替代 DCOM 的,而是一个消息处理基础结构,用于通过使用行业标准跨平台进行通信。