应用程序关系图上的 ASP.NET 应用程序概述

更新:2007 年 11 月

在应用程序设计器中,通过添加或使用相应的终结点,可以定义公开基于 .asmx 文件的 Web 服务和/或记录 Web 内容的 ASP.NET 应用程序。向应用程序关系图中添加 ASP.NET Web 服务应用程序或 ASP.NET Web 应用程序时,应用程序定义分别具有默认的 Web 服务或 Web 内容提供方终结点。但是,可以在 ASP.NET 应用程序上添加或移除任一类型的提供方终结点。还可以替换 ASP.NET 应用程序上的 Web 服务提供方终结点。

有关更多信息,请参见下列主题:

以下各节包含有关应用程序关系图上的 ASP.NET 应用程序的更多信息:

  • 定义 ASP.NET 应用程序上的 Web 服务

  • 定义 ASP.NET Web 应用程序

  • 实现 ASP.NET 应用程序

  • 实现 Web 服务使用者应用程序

定义 ASP.NET 应用程序上的 Web 服务

ASP.NET 应用程序上的 Web 服务表示为 Web 服务提供方终结点。任何应用程序上的 Web 服务使用方终结点都表示 Web 服务的连接点。您可以定义、检查和编辑 ASP.NET 应用程序上的 Web 服务的操作。

定义、检查和编辑操作

在应用程序设计器中,通过 ASP.NET 应用程序上的每个 Web 服务的对应 Web 服务提供方终结点,可以定义、查看和编辑该 Web 服务的操作和参数。

提示:

应用程序设计器还支持协定驱动的方法,因为您可以基于现有的 WSDL 或 .disco 文件,使用预定义的操作签名和类型在 ASP.NET 应用程序上创建 Web 服务提供方终结点。有关更多信息,请参见基于 WSDL 文件的 Web 服务终结点

可以使用下列元素定义一个或多个操作:

  • 操作名和返回类型(如果适用)。

  • 操作参数,包括其名称、类型(如果适用)以及描述如何传递每个参数的修饰符。

  • 每个操作或参数的注释(可选)。

有关更多信息,请参见 如何:定义 ASP.NET Web 服务的操作

在“Web 服务详细信息”窗口中定义操作

在应用程序设计器中,可以使用“Web 服务详细信息”窗口定义、查看或编辑 ASP.NET 应用程序上的 Web 服务提供方终结点的操作。对于已实现的 ASP.NET 应用程序上的 Web 服务,只有当对应的 Web 方法完全在单独的代码文件或“代码隐藏”文件中的单个类定义中声明时,此窗口才会正确地显示 Web 服务的操作。

下表描述“Web 服务详细信息”窗口不正确地显示 Web 服务操作的各种方案。

方案

“Web 服务详细信息”窗口

.asmx 文件包含内联的 Web 服务类定义。

不显示任何操作。

Web 服务类所实现的接口的方法上的属性所声明的 Web 方法。

- 或 -

某个类扩展了定义 Web 方法的基类。

只显示与 .asmx 文件所引用的类中声明的 Web 方法对应的那些操作。

代码隐藏文件定义了包含多个绑定的 Web 服务。

只显示与第一个绑定关联的那些操作。

有关更多信息,请参见在现有解决方案中进行反向工程时的注意事项

引用操作和参数的类型

有时可以引用操作或参数的类型,具体取决于为应用程序选定的编程语言。定义操作或参数时,可以选择执行下面的某一项操作:

  • 将类型保留为空,或设置为默认值(如果适用)。

  • 从 IntelliSense 类型列表中选择类型。

  • 引用在其他类型库和项目中定义的类型(如果应用程序项目中存在指向这些类型库或项目的引用)。

  • 引用计划在以后定义的类型。

当使用“Web 服务详细信息”窗口定义操作和参数时,Visual Basic 和 Visual C# 的引用类型将可以得到 IntelliSense 的支持。实现应用程序后,可以定义新类型或重新定义现有类型。有关更多信息,请参见 如何:定义 ASP.NET Web 服务的操作和参数类型

定义 ASP.NET Web 应用程序

在应用程序设计器中,ASP.NET 应用程序上的 Web 内容提供方终结点表示公开 Web 内容(例如,HTML 文件或 Active Server Pages(即 .aspx 文件))的连接点。任何应用程序上的 Web 内容使用方终结点都表示 Web 内容的客户端连接点。

Web 内容终结点不支持代码生成或同步,也不生成应用程序配置文件 (.config) 项或与这些项同步。但是,可以使用这些终结点来记录要求,并设置对 Web 服务器所承载网站的 Web 内容支持的约束。

有关更多信息,请参见下列主题:

实现 ASP.NET 应用程序

实现 ASP.NET 应用程序时,Visual Studio 可用适当的项目文件生成相应的项目。可以将 ASP.NET 应用程序实现为 ASP.NET Development Server Web 项目(基于文件系统),也可以将它实现为 Internet 信息服务 (IIS) Web 项目(基于 HTTP)。有关更多信息,请参见用于定义应用程序的应用程序类型和原型如何:为 ASP.NET 应用程序选择网站类型

所有 ASP.NET 应用程序项目都将 Web.config 配置文件作为根项目的一部分包括在解决方案资源管理器中。如果 ASP.NET 应用程序有一个或多个 Web 服务提供方终结点,则对于每个 Web 服务提供方终结点,项目都另外还包括一个 .asmx 文件和一个 Web 服务类文件,后者是编程语言特定的代码文件或“代码隐藏文件”。

在 Web 服务类中,具有单个绑定和单个端口的 WSDL 绑定与每个 Web 服务提供方终结点关联。每个 Web 服务操作连同所有注释一起以具有 WebMethod 属性的方法形式出现在 Web 服务类中。对于通过 WSDL 或 .disco 文件创建的任何 Web 服务提供方终结点,应用程序项目中还包括定义任何复杂 XML 类型的类文件,复杂 XML 类型用于支持对 WSDL 文件或相关 XML 架构文件中的操作进行 XML 序列化处理。之后,您可以通过添加必要的方法体代码来完成每个操作的实现。有关更多信息,请参见基于 WSDL 文件的 Web 服务终结点

说明:

您在操作注释中指定的任何 WSDL 说明也都将出现在 WSDL 文件中。您还可以自定义 WSDL 文件的生成。有关更多信息,请参见 ASP.NET Web 服务的 WSDL 文件生成

虽然已实现的应用程序的源代码被视为主定义,但您在应用程序设计器、“Web 服务详细信息”窗口或代码编辑器中对 ASP.NET Web 服务所做的更改会在应用程序关系图打开时彼此同步。不过,已关闭的关系图只有在关系图下一次打开时才与代码更改同步。有关更多信息,请参见如何:实现应用程序关系图上的应用程序

ASP.NET Web 应用程序的动态端口分配

实现基于文件系统的 ASP.NET 应用程序(它生成 ASP.NET Development Server Web 项目)时,会为关联的网站分配端口号。由于基于文件系统的 ASP.NET 应用程序默认情况下设置为使用动态端口,因此该端口号可以改变。

提示:

通过在解决方案资源管理器中右击 ASP.NET 应用程序项目,可以在“属性”窗口中查看端口号。

例如,在发生下列任何情况时,会将新端口号分配给基于文件系统的 ASP.NET 应用程序:

  • 当打开包含这些类型的 ASP.NET 应用程序的解决方案,而且已实现的 Web 服务使用者应用程序包含对这些 ASP.NET 应用程序公开的 Web 服务的引用时。

  • 当第一次在包含这些类型的 ASP.NET 应用程序的解决方案中使用 Visual Studio 调试器时。

如果关联的 Web 服务使用者应用程序项目在同一解决方案中,则它们会自动更新。但是,如果这些项目不在同一解决方案中,例如位于分开的解决方案中,则它们的 Web 引用将不会更新,因此会指向不存在的 Web 服务。

说明:

如果使用了源代码管理,而且关联的 Web 服务使用者应用程序项目已签入源代码管理中,则必须签出这些项目才能更新 Web 引用。

若要控制端口号的分配,可以将基于文件系统的 ASP.NET 应用程序的项目设置为不使用动态端口。

说明:

在指定不使用动态端口后,启动 Visual Studio 调试器时可能会生成一条错误消息,指出现有端口正在使用。在这种情况下,必须手动为网站项目更改端口号。更改端口号时,Visual Studio 会生成一条警告,指出现有的 Web 引用将变得无效。如果应用程序关系图已打开,则会更新 Web 引用。但是,如果应用程序关系图未打开,则必须先删除这些 Web 引用,然后再将其重新添加进来。

有关更多信息,请参见下列主题:

实现 Web 服务使用者应用程序

当实现具有一个或多个 Web 服务使用方终结点的应用程序时,如果用来生成 Web 引用的 WSDL 文件可用,则会为每个 Web 服务使用方终结点生成一个 Web 引用。此 WSDL 文件是通过 Web 服务使用方终结点上的 WSDL 位置属性指定的。当生成 Web 引用时,会同时生成使用者应用程序配置文件中的 Web 服务 URL。

说明:

如果同时还实现了连接的 ASP.NET Web 服务提供方应用程序,则 WSDL 文件将在实现期间可用。但是,如果在实现使用方终结点时未实现连接的 Web 服务提供方应用程序,则使用方终结点会显示一条警告,指出使用方终结点无法实现。当实现 Web 服务提供方应用程序时,如果使用者应用程序已实现,将会自动实现任何连接的使用方终结点。有关更多信息,请参见应用程序关系图疑难解答

使用 Web 引用可以创建用于调用 Web 服务操作和处理 SOAP 消息通信的 Web 服务客户端代理类和代理类型。还可以对自定义的 Web 服务客户端代理类(包括那些在类库中定义的自定义代理类和 Web 引用)进行反向工程和可视化处理,使其成为 Web 服务使用方终结点。有关更多信息,请参见创建 XML Web services 代理自定义 Web 服务客户端代理类的注意事项

说明:

您还可以在实现后启用 Windows 或 Web 服务使用者应用程序的 XML 文档,以便在 XML 文件中包含操作注释。此文件是在生成应用程序项目后生成的。若要生成 XML 文件,必须启用 Windows 项目的 XML 文档。有关 Visual Basic Windows 项目的信息,请参见 如何:生成项目的 XML 文档。有关 Visual C# Windows 项目的信息,请参见如何:设置生成属性 (C#)“项目设计器”->“生成”页 (C#)

请参见

其他资源

在应用程序关系图中定义 ASP.NET 应用程序