实现应用程序的注意事项

更新:2007 年 11 月

当在应用程序设计器中实现应用程序时,应注意以下事项:

  • 安装要求

  • 安全注意事项

  • 实现前的注意事项

  • 有关实现的疑难解答

  • 实现后的注意事项

安装要求

实现某些应用程序之前,请确保安装了以下项目:

  • 选择用于实现应用程序的编程语言。

  • 选择用于实现应用程序的 .NET Framework 版本(2.0、3.0 或 3.5)。

  • Microsoft Visual Studio Tools for Office(如果要实现 Office 应用程序)。此外还需要 Microsoft Office 2003 或 Microsoft Office 2007。有关更多信息,请参见安装 Visual Studio Tools for Office

  • 若要实现远程 ASP.NET 应用程序,请安装选择用于在远程服务器上实现这些应用程序的 .NET Framework 版本(2.0、3.0 或 3.5)。

安全注意事项

为应用程序定义配置特定设置时,应注意某些安全事项。有关更多信息,请参见应用设置

应用程序配置文件中的未加密设置

在实现应用程序或编辑已实现的应用程序时,如果 Visual Studio 以明文(未加密)形式将带有敏感数据的设置写入应用程序的配置文件中,它将显示安全警告。此外,当您在“属性”窗口、设置和约束编辑器或 ComplexSetting 集合编辑器(可在设置和约束编辑器中打开)中编辑这些设置时,它们也可能显示为未加密的形式。

下表列出了这些设置以及它们在设置和约束编辑器及应用程序配置文件中的位置。此表还说明了 Visual Studio 显示这些设置的方式。

说明:

您可能需要先添加适当的资源,然后才能编辑对应的设置。有关更多信息,请参见 添加资源。您可以在配置文件中对设置进行加密。有关更多信息,请参见 使用受保护的配置加密配置信息应用程序关系图疑难解答

设置名称

在设置和约束编辑器中的位置

应用程序配置文件中的节

Settings

“应用程序设置”->“目录”->“配置”下的“AppSettingsSection”资源。

appSettings

ConnectionStrings

“应用程序设置”->“目录”->“配置”下的“ConnectionStringsSection”资源。

在配置数据库使用方终结点的数据库连接字符串时,可以添加此设置。可以使用“连接属性”对话框、“属性”窗口或 ComplexSetting 集合编辑器来执行此任务。

警告:

在“连接属性”对话框和“属性”窗口中,连接字符串以明文形式显示。密码在“连接属性”对话框中显示为屏蔽字符串。它不显示在“属性”窗口中。在设置和约束编辑器中,连接字符串显示为屏蔽字符串。在 ComplexSetting 集合编辑器中,包括密码在内的整个字符串以明文形式显示。

当您在自定义原型中复制或包括数据库使用方终结点时,Visual Studio 会将连接字符串(不包括密码)以明文形式复制到新位置。

警告:

实现数据库使用方应用程序时,Visual Studio 会将该字符串以明文形式写入应用程序的配置文件中。有关更多信息,请参见 如何:配置到外部数据库的连接

connectionStrings

Password

“应用程序设置”->“目录”->“配置”->“SystemWebSectionGroup”下的“IdentitySection”资源。

当您在设置和约束编辑器中查看此设置时,Visual Studio 会显示一个屏蔽字符串。

identity

SqlConnectionString

“应用程序设置”->“目录”->“配置”->“SystemWebSectionGroup”下的“SessionStateSection”资源。

sessionState

StateConnectionString

“应用程序设置”->“目录”->“配置”->“SystemWebSectionGroup”下的“SessionStateSection”资源。

sessionState

Users

“应用程序设置”->“目录”->“配置”->“SystemWebSectionGroup”->“AuthenticationSection”->“FormsAuthenticationConfiguration”->“FormsAuthenticationCredentials”下的“FormsAuthenticationCredentials”资源。

当您在设置和约束编辑器中查看此设置时,Visual Studio 会显示一个屏蔽字符串。

警告:

当您在 ComplexSetting 集合编辑器中查看或编辑此设置的值时,该值会以明文形式显示。

authentication -> forms -> credentials

Network

“应用程序设置”->“目录”->“配置”->“NetSectionGroup”->“MailSettingsSectionGroup”下的“SmtpSection”资源。

当您在设置和约束编辑器中查看此设置时,Visual Studio 会显示一个屏蔽字符串。

smtp under mailSettings

应用程序配置文件设置的安全处理

无论要加密的设置是否包含敏感数据,Visual Studio 都按以下方式处理它们:

  • 当您复制应用程序关系图上的应用程序定义或终结点时,Visual Studio 将包括这些设置。在实现应用程序时,设置将以明文(未加密)形式显示在应用程序的配置文件中。当 Visual Studio 将这些设置写入应用程序的配置文件中时,它将显示安全警告。

  • 当您在自定义原型中包括应用程序定义或终结点时,Visual Studio 将包括这些设置。在实现应用程序时,这些设置将以明文(未加密)形式显示在应用程序的配置文件中。当 Visual Studio 将这些设置写入应用程序的配置文件中时,它将显示安全警告。因此,在分发这些文件之前应注意这一事项,避免在设置中存储敏感、机密或专有的数据,或考虑使用加密。有关更多信息,请参见如何:根据已配置的应用程序和终结点创建自定义原型

  • Visual Studio 不将这些设置保存在应用程序定义 (.sdm) 文件或应用程序关系图 (.ad) 文件中。有关更多信息,请参见 系统定义模型 (SDM) 概述

  • 当您创作用户定义的约束时,Visual Studio 不会使这些设置变为可用。有关更多信息,请参见 约束应用程序和应用程序宿主关系

实现前的注意事项

实现应用程序之前,应注意下列事项:

  • 连接要实现的应用程序。这样,Visual Studio 便可以正确生成任何所需的 Web 服务客户端代理类。

  • 确认“语言”、“项目”、“项目位置类型”、“模板”和“目标 Framework”属性是否包含所需的值。实现后将不能修改这些属性。有关更多信息,请参见实现后的注意事项。

    说明:

    在实现之前,可能需要创建或保存应用程序关系图的副本。

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

  • 实现 Office 应用程序时,Visual Studio 会将该应用程序的“Office 版本”设置更新为“模板”属性中指定的版本。

  • 实现应用程序之前,应指定要使用的项目名称。实现之后,您可以在解决方案资源管理器中重命名 Windows 或 Office 项目。但是,重命名项目并不会更改其程序集名称或它在磁盘上的项目文件夹名称。例如,如果将一个 Windows 项目从“MyGeneratedName”重命名为“MyRenamedProject”,Visual Studio 会将该项目编译为“MyGeneratedName.exe”而不是“MyRenamedProject.exe”。它在磁盘上的项目文件夹名称依然是“MyGeneratedName”。

  • 对于 Windows 或 Office 应用程序,请不要用项目名称来设置项目位置。实现此类应用程序后,可以使用 Windows 资源管理器更改项目位置。

  • 应用程序定义名称区分大小写,而项目名称则不然。

    在您实现类型相同但名称大小写不同的应用程序时,Visual Studio 将不会实现“重复”的应用程序。

    为了避免这种情况,请在实现之前更改重复项的名称。

    有关更多信息,请参见 如何:在应用程序关系图中重命名应用程序

  • 如果要在本地或远程服务器上实现使用 IIS 运行的 ASP.NET 应用程序,您必须对该特定的服务器拥有管理员权限。否则,Visual Studio 将无法实现该应用程序。

    如果您是在 Windows Vista 上运行 Visual Studio,可以管理员身份运行 Visual Studio,以便在本地服务器上实现这些应用程序。

    有关详细信息,请参见有关实现的疑难解答。

  • 如果以前实现过、但之后被删除的应用程序的项目仍存在于磁盘上,那么当您实现名称和位置与该应用程序相同的“重复”ASP.NET 应用程序时,将发生冲突。

    若要避免在实现时出现此冲突,请在实现“重复”的应用程序之前先对它进行重命名。否则,请参见有关实现的疑难解答。

  • 请确认项目及其在磁盘上的文件夹都具有唯一的名称,即使这些项目在解决方案资源管理器中具有不同的名称且它们在磁盘上的文件夹具有不同的父文件夹,也不例外。

    在准备好生成部署报告时,可以指定 Visual Studio 创建目录和复制输出文件的位置。但是,Visual Studio 将不会在该目录中包括项目的父文件夹。因此,如果解决方案包含的项目在磁盘上具有同名的文件夹,Visual Studio 将为同名的项目创建单个目录,即使它们具有不同的父文件夹也不例外。这样,当 Visual Studio 将输出文件复制到该目录中时,将出现互相覆盖的情况。有关更多信息,请参见部署输出文件的位置和目录结构

有关实现的疑难解答

实现应用程序时,可能会遇到下列问题:

  • Visual Studio 无法在本地或远程服务器上实现设置为使用 IIS 运行的 ASP.NET 应用程序。

    若要在本地或远程服务器上实现使用 IIS 运行的 ASP.NET 应用程序,您必须对该特定服务器拥有管理员权限。

    如果您是在 Windows Vista 上运行 Visual Studio,可以管理员身份运行 Visual Studio,以便在本地服务器上实现这些应用程序。

    有关更多信息,请选择 如何:为 ASP.NET 应用程序选择网站类型

  • Visual Studio 无法生成应用程序的项目文件。

    在将应用程序设置为使用不兼容的自定义项目模板时,就可能出现此问题。应用程序设计器只支持基于 Windows、Office、网站和 ASP.NET Web 应用程序项目创建的自定义项目模板。

    若要解决此问题,请选择标准项目模板或另一个自定义项目模板。

    如果将应用程序设置为包含自定义项目模板的 .zip 文件,则也可能出现此问题。

    若要解决此问题,请先解压缩 .zip 文件,然后再选择自定义模板。

    有关更多信息,请参见 Visual Studio 模板应用程序关系图上的应用程序的项目模板

  • 如果某应用程序以前实现过、之后被删除,但其项目仍存在于磁盘上,那么当您实现名称和位置与该应用程序相同的 ASP.NET 应用程序时,将发生冲突。

    若要解决此冲突,可以执行下列操作之一:

    • 在另一个位置创建项目。

    • 打开现有项目,然后将它重新添加到解决方案中。

    • 覆盖现有项目。

    若要避免出现此冲突,请在实现之前重命名应用程序。

实现后的注意事项

实现应用程序之后,应注意下列事项:

  • 更改应用程序定义的名称后,关联项目的根目录名不变。但是,Visual Studio 会将项目文件(例如系统定义模型 (SDM) 文档和类文件)与应用程序定义的更改同步。有关更多信息,请参见 应用程序设计器概述

  • 实现应用程序后,ASP.NET、Windows 或 Office 应用程序的“目标 Framework”属性在“属性”窗口中将显示为空和只读。此外,您可以在项目的属性中查看和更改应用程序项目的 .NET Framework 版本。

    说明:

    更改项目属性中的目标 Framework 版本时,请注意一些特定的事项。有关更多信息,请参见如何:为应用程序选择 .NET Framework 版本

  • Office 应用程序上的“Office 版本”设置将反映实现应用程序时由应用程序的“模板”属性指定的版本。虽然您可以更改此设置,但应用程序设置通常反映应用程序的配置。在评估应用程序以进行部署时,Visual Studio 将只根据逻辑服务器的设置验证应用程序的设置。即使这些设置与“模板”属性中的版本不匹配,也不会显示验证警告。有关更多信息,请参见应用设置

请参见

任务

如何:实现应用程序关系图上的应用程序

其他资源

实现应用程序关系图上的应用程序