应用程序之间的通信

更新:2007 年 11 月

在应用程序设计器中,可以通过使用终结点连接应用程序来配置应用程序之间的通信路径。在应用程序关系图上,连接基于使用方终结点的配置,表示应用程序如何在开发环境(不一定必须是部署环境)中连接。对于已实现的应用程序和支持的连接类型,连接会在应用程序配置文件中创建配置设置。更改应用程序关系图上的连接时会更改这些配置设置,反之亦然。用配置文件项作为连接的基础,可以确保不将提供方终结点的地址硬编码到使用者应用程序中,从而使得在部署时重新配置连接成为可能。

提示:

应用程序关系图上的连接表示当使用 Visual Studio 调试器调试解决方案时应遵循的连接。有关更多信息,请参见 使用 Visual Studio 进行调试

例如,将 ASP.NET 应用程序上的 Web 服务提供方终结点连接到应用程序关系图上的另一个应用程序时,会在使用者应用程序上创建一个 Web 服务使用方终结点。会为此使用方终结点配置 Web 提供方终结点的地址。

比较而言,使用系统设计器创建的系统关系图上的连接描述如何在部署系统实例时连接应用程序。在系统关系图上,连接表示在部署应用程序时使用提供方终结点的地址(如 Web 服务 URL)配置使用方终结点的指令。

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

在应用程序关系图上配置通信路径

在应用程序关系图上,可以通过使用终结点连接应用程序定义来配置应用程序之间的通信路径。可以根据需要添加或创建应用程序终结点。关系图上出现带箭头的连接线,箭头指示从使用方终结点到提供方终结点的通信方向。

默认情况下,应用程序上的使用方终结点需要连接到该应用程序上的适当提供方终结点才能正确工作。在应用程序关系图上,使用方终结点的定义中有一个应用程序终结点设置“Connection Required”,它设置为 True,而且默认情况下当在系统中使用具有该终结点的应用程序时不能重写该设置。不过,如果应用程序的实现允许连接是可选的,则可以在终结点定义上将此设置更改为 False,或者在系统上下文中包括该终结点时重写该设置。否则,必须在包含关联应用程序的任何系统内连接或委托该使用方终结点。

说明:

如果某个 Web 服务使用方终结点在需要连接时断开了连接,则当对包含关联应用程序的系统的部署进行计算时会产生验证错误。唯一一种不需要连接的情况是:应用程序已经实现,因此没有配置信息也可以部署和使用该应用程序。但这不是典型情况。有关更多信息,请参见 验证部署关系图

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

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

  • 到 Web 服务的连接

  • 连接到外部数据库

  • 删除或移动连接

到 Web 服务的连接

如果在应用程序和系统设计期间将应用程序连接到同一个 Web 服务提供方终结点,则意味着在部署时将使用一个公共的 Web 服务 URL 来配置其使用者应用程序。开发时使用的那些 Web 服务 URL 在部署时也可能会用到。但是,当在系统中使用 Web 服务使用者应用程序时可以重写它们,也可以在部署时将它们全部替换。当评估系统的部署时,生成的部署报告中会提供关于如何在 Web 服务提供方与使用者之间传播 URL 的信息。

分布式系统设计器支持使用 SOAP 消息进行通信的应用程序类型。SOAP 是一个轻量协议,它在分布式环境中使用基于可扩展 XML 的消息框架来交换结构化信息。Web 服务可能还支持其他协议,例如,HTTP-POST 或 HTTP-GET。但是,应用程序关系图只显示 SOAP 终结点,而不对这些额外的协议进行可视化处理。在应用程序关系图上,Web 服务终结点表示一个服务接口,该接口由一组可通过 HTTP 或 SOAP 绑定使用的操作组成。默认情况下,ASP.NET 应用程序为同一个地址上的这些操作同时提供 SOAP 1.1 和 SOAP 1.2 绑定。虽然在为服务生成的 WSDL 文件中同时存在这两种绑定,但只要它们提供相同的行为(具有相同的 WSDL 端口类型),应用程序关系图就只会将它们表示为单个终结点。

如果使用 Web 引用创建 Web 服务客户端代理类,而且对于同一组操作,WSDL 文件既包含 SOAP 1.1 绑定,也包含 SOAP 1.2 绑定,则生成的代理类将默认使用 SOAP 1.1 绑定。如果 WSDL 文件中存在 SOAP 1.2 绑定,您可以通过编程方式使代理类使用此绑定。使用的绑定版本会影响到运行时传输的消息的格式;但它不会影响到可用的操作或可以传递和返回的参数。有关 SOAP 和 WSDL 的更多信息,请访问 MSDN Online。

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

连接到外部数据库

将应用程序连接到外部数据库时,可以为使用者应用程序上的数据库使用方终结点配置数据库连接字符串。在应用程序和系统设计期间将应用程序连接到同一数据库时,会指定并记录公共数据库的使用。但是,与 Web 服务连接不同,不要求连接到同一数据库的数据库使用方终结点的数据库连接字符串必须相同甚至指定同一个物理数据库,尽管最佳做法是确保满足此要求。

当实现数据库使用者应用程序时,Visual Studio 生成包括应用程序配置文件在内的项目文件。配置数据库连接时会将连接字符串信息添加到此配置文件中。部署时,这些数据库连接字符串很有可能会被实际的数据库位置替换。开发期间通常不会使用成品数据库,反之亦然。应用程序关系图上定义的连接字符串的某些部分可能会在生产时用到,或者可能当系统上下文中使用了使用者应用程序定义时被重写。

有关更多信息,请参见 如何:配置到外部数据库的连接

删除或移动连接

在应用程序关系图上删除连接时不会改变应用程序上的终结点,因此您可以重新连接这些终结点,或者在不更改应用程序定义的情况下将它们连接到类型兼容的不同终结点。有关更多信息,请参见 在应用程序关系图中连接应用程序的规则

说明:

当连接或重新连接 Web 服务终结点时,如果使用方终结点和提供方终结点的 WSDL 绑定名称与绑定命名空间不匹配,则会出现工具提示。最佳做法是使用 WSDL 绑定名称和绑定命名空间的组合定义 Web 服务协定或行为。您可以不考虑此警告而连接这些终结点;但是,应确保这些终结点确实是兼容的。另外,将 Web 服务使用方终结点连接到一个不同的 Web 服务提供方终结点时,会询问您是使用新的 Web 服务提供方终结点更新使用方终结点,还是将使用方终结点定义保留不变。有关更多信息,请参见 如何:在应用程序关系图中重新连接 Web 服务

删除连接时会同时从使用者应用程序的配置文件中移除配置信息。但是,如果使用方终结点需要连接,则必须重新连接使用方终结点,应用程序才能正常工作。使用方终结点将保留某些信息。例如,Web 服务使用方终结点将保留关于 WSDL 文件创建位置的信息。此位置可能与原始目标位置相同,但不是必须相同。如果 Web 服务定义或 WSDL 文件更改,可能会使用此信息来刷新 Web 引用。有关更多信息,请参见 如何:从应用程序关系图中删除连接

请参见

任务

演练:在应用程序关系图上定义应用程序

其他资源

在应用程序关系图中定义通信路径