开发和部署 WCF 数据服务

本主题提供有关开发和部署 WCF 数据服务 的信息。有关 WCF 数据服务 的更多基本信息,请参见 创建 ADO.NET 数据服务WCF 数据服务概述

开发 WCF 数据服务

使用 WCF 数据服务 创建支持 开放式数据协议 (OData) 的数据服务时,必须在开发过程中执行以下基本任务:

  1. 定义数据模型

    WCF 数据服务 支持各种数据服务提供程序,可基于来自各种数据源(从关系数据库到后期绑定数据类型)的数据定义数据模型。有关更多信息,请参见数据服务提供程序(WCF 数据服务)

  2. 创建数据服务

    大多数基本数据服务公开一个从 DataService 类继承的类和一个作为实体容器的命名空间限定名称的 T 类型。有关更多信息,请参见定义 WCF 数据服务

  3. 配置数据服务

    默认情况下,WCF 数据服务 会禁用对实体容器所公开的资源的访问。通过 DataServiceConfiguration 接口可以配置对资源和服务操作的访问,指定支持的 OData 版本并定义其他服务范围的行为,例如批处理行为或可在单个响应源中返回的最大实体数。有关更多信息,请参见配置数据服务(WCF 数据服务)

本主题主要介绍如何使用 Visual Studio 开发和部署数据服务。有关 WCF 数据服务 将数据公开为 OData 源的灵活性方面的更多信息,请参见定义 WCF 数据服务

选择开发 Web 服务器

使用 Visual Studio 将 WCF 数据服务开发为 ASP.NET 应用程序或 ASP.NET 网站时,可以选择在开发期间运行该数据服务的 Web 服务器。以下 Web 服务器与 Visual Studio 集成在一起,从而可以更轻松地在本地计算机上测试和调试数据服务。

  1. 本地 IIS 服务器

    创建作为在 Internet Information Services (IIS) 上运行的 ASP.NET 应用程序或 ASP.NET 网站的数据服务时,建议使用 IIS 在本地计算机上开发和测试数据服务。在 IIS 上运行数据服务更便于在调试过程中跟踪 HTTP 请求。这还允许预先确定 IIS 访问数据服务所需的文件、数据库和其他资源所必须具备的权限。要在 IIS 上运行数据服务,必须确保正确安装和配置了 IIS 和 Windows Communication Foundation (WCF),并且在文件系统和数据库中授予了 IIS 帐户的访问权限。有关更多信息,请参见如何:开发在 IIS 上运行的 WCF 数据服务

    Gg258442.note(zh-cn,VS.100).gif注意:
    必须使用管理员权限运行 Visual Studio 才能启用开发环境以配置本地 IIS 服务器。

  2. Visual Studio 开发服务器

    Visual Studio 包含一个内置 Web 服务器,即 Visual Studio 开发服务器;这是 ASP.NET 项目的默认 Web 服务器。该 Web 服务器设计为在开发过程中在本地计算机上运行 ASP.NET 项目。WCF 数据服务快速启动揭示了如何创建在 Visual Studio 开发服务器上运行的数据服务。

    在使用 Visual Studio 开发服务器开发数据服务时,应注意以下限制条件:

    • 该服务器只能在本地计算机上访问。

    • 该服务器侦听 localhost 和特定端口,而非端口 80,后者是 HTTP 消息的默认端口。有关更多信息,请参见 Web Servers in Visual Studio for ASP.NET Web Projects

    • 该服务器在当前用户帐户的上下文中运行数据服务。例如,如果作为管理员级别的用户运行,则在 Visual Studio 开发服务器中运行的数据服务将具有管理员级别特权。这会导致数据服务能够访问在部署到 IIS 服务器时无权访问的资源。

    • 该服务器不包含 IIS 的额外功能,如身份验证。

    • 该服务器无法处理成块的 HTTP 流,在从数据服务访问大型二进制数据时,WCF 数据服务 客户端会默认发送这种流。有关更多信息,请参见流提供程序(WCF 数据服务)

    • 该服务器在处理 URL 中的句点 (.) 字符时会遇到问题,即使 WCF 数据服务 支持在键值中使用该字符。

    Gg258442.Tip(zh-cn,VS.100).gif提示:
    即使可以使用 Visual Studio 开发服务器在开发过程中测试数据服务,也应当在将其部署到运行 IIS 的 Web 服务器之后再次对其进行测试。

  3. Windows Azure 开发环境

    Windows Azure Tools for Visual Studio 包含一组集成工具,可用于在 Visual Studio 中开发 Windows Azure 服务。使用这些工具,可以开发可部署到 Windows Azure 的数据服务,并且可以在部署之前在本地计算机上测试数据服务。使用 Visual Studio 开发在 Windows Azure 平台上运行的数据服务时可以使用这些工具。可以从 Microsoft 下载中心下载 Windows Azure Tools for Visual Studio。有关开发在 Windows Azure 上运行的数据服务的更多信息,请参见在 Windows Azure 中部署 OData 服务一文。

开发提示

开发数据服务时,应注意以下事项:

  • 如果计划对用户进行身份验证或将访问权限限定给特定用户,请确定数据服务的安全要求。有关更多信息,请参见WCF 数据服务的安全

  • HTTP 检查程序在调试数据服务时会非常有帮助,通过它可以检查请求和响应消息的内容。可以使用任何可显示原始数据包的网络数据包分析器检查发向数据服务的 HTTP 请求和来自数据服务的响应。

  • 与在常规操作过程中相比,在调试数据服务时可能希望获得更多有关来自数据服务的错误的信息。可以通过将 DataServiceConfiguration 中的 UseVerboseErrors 属性设置为 true 并将数据服务类的 ServiceDebugBehavior 属性的 IncludeExceptionDetailInFaults 属性设置为 true 获取来自数据服务的附加错误信息。有关更多信息,请参见调试 WCF 数据服务一文。还可以在 WCF 中启用跟踪以查看 HTTP 消息层中出现的异常。有关更多信息,请参见Configuring Tracing

  • 数据服务通常开发为 ASP.NET 应用程序项目,但也可以在 Visual Studio 中将数据服务创建为 ASP.NET 网站项目。有关这两种项目类型之间差异的信息,请参见 Web Application Projects versus Web Site Projects

  • 使用 Visual Studio 中的**“添加新项”**对话框创建数据服务时,数据服务由 ASP.NET 承载于 IIS 中。虽然 ASP.NET 和 IIS 是数据服务的默认宿主,但也支持其他宿主选项。有关更多信息,请参见承载数据服务(WCF 数据服务)

部署 WCF 数据服务

WCF 数据服务在选择承载数据服务的过程方面很灵活。可以使用 Visual Studio 将数据服务部署到以下平台上:

部署注意事项

部署数据服务时,应注意以下事项:

  • 部署使用 实体框架 提供程序访问 SQL Server 数据库的数据服务时,可能还需要随数据部署一起传播数据结构和/或数据。Visual Studio 可自动创建脚本(.sql 文件)在目标数据库中执行此操作,这些脚本可以包含在 ASP.NET 应用程序的 Web 部署包中。有关更多信息,请参见How to: Deploy a Database With a Web Application Project。对于 ASP.NET 网站,可以使用 Visual Studio 中的**“数据库发布向导”**完成此任务。有关更多信息,请参见Deploying a Database by Using the Database Publishing Wizard

  • WCF 数据服务 包含一个基本 WCF 实现,因而可以使用 Windows Server AppFabric 监控部署到运行于 Windows Server 上的 IIS 的数据服务。有关使用 Windows Server AppFabric 监控数据服务的更多信息,请参见使用 Windows Server AppFabric 跟踪 WCF 数据服务一文。

另请参见

概念

承载数据服务(WCF 数据服务)
WCF 数据服务的安全

其他资源

定义 WCF 数据服务