ADO.NET/WCF DataService的项目设置

时间:2010-04-03 14:05:47

标签: asp.net visual-studio visual-studio-2008 wcf-data-services

我想实现一个ADO.NET / WCF DataService,我想知道为此目的在VS2008 SP1中设置项目的最佳方法是什么。

目前我有一个ASP.NET Web应用程序项目(不是“WebSite”项目类型)。数据访问层是具有SQL Server数据库的实体模型(EF版本1)。我在一个单独的DLL项目中有实体模型,Web应用程序项目引用了这个程序集以进行所有数据访问。

ADO.NET / WCF DataService也需要与实体模型/数据库通信。它必须与Web应用程序一起托管在同一Web服务器(IIS 7.5)上。

由于DataService与该特定Web应用程序没有直接关系(尽管它将提供和修改Web应用程序使用的同一数据库中的数据),我的基本想法是将DataService分离到自己的新项目中(它也引用了实体模型DLL)。

现在我已经看到VS2008 SP1中没有项目类型“ADO.NET/WCF DataService”。似乎只能将DataService作为元素添加到其他现有项目中,例如Web应用程序项目。

为什么没有单独的DataService项目类型?这是否意味着我必须将DataService作为元素添加到我的Web应用程序项目中?或者我应该创建一个新的Web应用程序项目并向其添加DataService? (我可以删除预生成的default.aspx,因为我在这个项目中不需要任何网页。)最好的方法是什么?

提前感谢您的建议!

2 个答案:

答案 0 :(得分:1)

由于您托管的是WCF服务,因此您应该使用Web应用程序项目。它可以托管在IIS中的单独站点上,您可以在其中使用不同的Web应用程序进行连接。不需要单独的WCF DataService项目模板。

您可以获得以下参考资料:

  

网站 - > WCF服务网站 - > EM
  项目(模型)
  WCF服务 - > EM项目

答案 1 :(得分:0)

我相信这篇文章(http://msdn.microsoft.com/en-US/library/cc668805.aspx)给出了一些重要提示。特别是以下引用可能会解释为什么WCF DataServices没有单独的项目模板:

ADO.NET数据服务不是独立的网络服务。 ADO.NET数据服务不会绑定并侦听网络套接字,以获取其表示状态传输(REST)入口点的传入请求。相反,ADO.NET数据服务是托管在诸如Windows Communication Foundation(WCF)之类的环境中的组件,它提供核心服务器网络设施。主机处理与网络的直接交互,并支持缓存,可伸缩性和身份验证模块。

在项目中托管WCF DataService的选项似乎是:

  • ASP.NET应用程序
ADO.NET数据服务可以作为ASP.NET应用程序内的WCF端点进行托管。在此实现中,WCF和ASP.NET处理ADO.NET数据服务的网络交互。
  • 或WCF ServiceHost或WebServiceHost
可以使用WCF ServiceHost或WebServiceHost类托管ADO.NET数据服务。