3

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

目前我有一个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,因为我不需要此项目中的任何网页。)最好的方法是什么?

感谢您提前提出建议!

回答

1

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

你得到下面这个引用:

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

+0

感谢您的回复,Rody!同时我也发现了一些关于这个问题的信息(请参阅我自己的答案)。为了方便起见,我现在开始将WCF DataService添加到我的Web应用程序项目中。 – Slauma 2010-04-08 15:15:37

0

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

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

而且在项目举办WCF DataService的选项似乎是:

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