开发和部署 WCF 数据服务
本主题提供有关开发和部署 WCF 数据服务的信息。 有关 WCF 数据服务的更多基本信息,请参见 WCF 数据服务入门和 WCF 数据服务概述。
开发 WCF 数据服务
使用 WCF 数据服务创建支持 开放式数据协议 (OData) 的数据服务时,必须在开发过程中执行以下基本任务:
定义数据模型
WCF 数据服务支持各种数据服务提供程序,可基于来自各种数据源(从关系数据库到后期绑定数据类型)的数据定义数据模型。 有关更多信息,请参见数据服务提供程序 (WCF Data Services)。
创建数据服务
大多数基本数据服务公开一个从 DataService<T> 类继承的类和一个作为实体容器的命名空间限定名称的 T 类型。 有关更多信息,请参见数据服务 (WCF Data Services)。
配置数据服务
默认情况下,WCF 数据服务会禁用对实体容器所公开的资源的访问。 通过 DataServiceConfiguration 接口可以配置对资源和服务操作的访问,指定支持的 OData 版本并定义其他服务范围的行为,例如批处理行为或可在单个响应源中返回的最大实体数。 有关更多信息,请参见配置数据服务(WCF 数据服务)。
本主题主要介绍如何使用 Visual Studio 开发和部署数据服务。 有关 WCF 数据服务将数据公开为 OData 源的灵活性方面的更多信息,请参见数据服务 (WCF Data Services)。
选择开发 Web 服务器
使用 Visual Studio 将 WCF 数据服务开发为 ASP.NET 应用程序或 ASP.NET 网站时,可以选择在开发期间运行该数据服务的 Web 服务器。 以下 Web 服务器与 Visual Studio 集成在一起,从而可以更轻松地在本地计算机上测试和调试数据服务。
本地 IIS 服务器
创建作为在 Internet Information Services (IIS) 上运行的 ASP.NET 应用程序或 ASP.NET 网站的数据服务时,建议使用 IIS 在本地计算机上开发和测试数据服务。 在 IIS 上运行数据服务更便于在调试过程中跟踪 HTTP 请求。 这还允许预先确定 IIS 访问数据服务所需的文件、数据库和其他资源所必须具备的权限。 要在 IIS 上运行数据服务,必须确保正确安装和配置了 IIS 和 Windows Communication Foundation (WCF),并且在文件系统和数据库中授予了 IIS 帐户的访问权限。 有关更多信息,请参见如何:开发在 IIS 上运行的 WCF 数据服务。
备注
必须使用管理员权限运行 Visual Studio 才能启用开发环境以配置本地 IIS 服务器。
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 数据服务支持在键值中使用该字符。
提示
即使可以使用 Visual Studio 开发服务器在开发过程中测试数据服务,也应当在将其部署到运行 IIS 的 Web 服务器之后再次对其进行测试。
Windows Azure 开发环境
Windows Azure Tools for Visual Studio 包含一组集成工具,可用于在 Visual Studio 中开发 Windows Azure 服务。 使用这些工具,可以开发可部署到 Windows Azure 的数据服务,并且可以在部署之前在本地计算机上测试数据服务。 使用 Visual Studio 开发在 Windows Azure 平台上运行的数据服务时可以使用这些工具。 您可下载 Windows Azure Tools 用于 Visual Studio,下载位置为 Microsoft 下载中心。 有关以下内容的更多信息 开发运行在 Windows Azure 上的数据服务,请参见文章 Windows Azure 中部署 OData Service。
开发提示
开发数据服务时,应注意以下事项:
如果计划对用户进行身份验证或将访问权限限定给特定用户,请确定数据服务的安全要求。 有关更多信息,请参见WCF 数据服务的安全。
HTTP 检查程序在调试数据服务时会非常有帮助,通过它可以检查请求和响应消息的内容。 可以使用任何可显示原始数据包的网络数据包分析器检查发向数据服务的 HTTP 请求和来自数据服务的响应。
与在常规操作过程中相比,在调试数据服务时可能希望获得更多有关来自数据服务的错误的信息。 通过设置 UseVerboseErrors 属性于 DataServiceConfiguration 中,并设置为 true 并设置 IncludeExceptionDetailInFaults 属性(属于 ServiceDebugBehavior 属性)于数据服务类上,并设置为 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 将数据服务部署到以下平台上:
承载有 IIS 的 Web 服务器
当将数据服务开发为 ASP.NET 项目,可以将其部署到 IIS Web 服务器,方法是使用标准的 ASP.NET 部署过程。 Visual Studio 提供了以下的部署技术用于 ASP.NET(根据 ASP.NET 托管您正在部署的数据服务的项目的种类)。
ASP.NET Web 应用程序的部署技术
ASP.NET 网站的部署技术
有关以下内容的更多信息 ASP.NET 应用程序的部署选项的更多信息,请参见 ASP.NET Web Application Project Deployment Overview。
提示
在尝试将数据服务部署到 IIS 之前,请确保已测试了向运行 IIS 的 Web 服务器的部署。有关更多信息,请参见如何:开发在 IIS 上运行的 WCF 数据服务。
Windows Azure
可以使用 Windows Azure Tools for Visual Studio 将数据服务部署到 Windows Azure。 您可下载 Windows Azure Tools 用于 Visual Studio,下载位置为 Microsoft 下载中心。 有关以下内容的更多信息 开发 Windows Azure 的数据服务,请参见文章 Windows Azure 中部署 OData Service。
部署注意事项
部署数据服务时,应注意以下事项:
当您部署数据服务,其使用 实体框架 提供程序访问 SQL Server 数据库,您也可能通过数据服务部署传播数据结构、数据,或二者。 Visual Studio可以自动创建脚本 (.sql files) 来执行此操作于目标数据库中,并且这些脚本可以包含在 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 服务器上运行的 IIS)。 有关以下内容的更多信息 使用 Windows Server AppFabric 监视数据服务,请参阅文章使用 Windows Server AppFabric 跟踪 WCF 数据服务。