使用“WCF服务应用程序”项目公开WCF数据服务

时间:2011-10-28 15:45:32

标签: wcf wcf-data-services odata

我有一个像这样结构的解决方案

Solution  
   |  
   +-- DataAccessLayer (EF Model)  
   +-- ODataProject    (Contains MyODataService that inherits from DataService)  
   +-- SelfHost        (Hosts the ODataProject.MyODataService in a console app)

我需要添加一个项目(称之为IISHost),该项目将在IIS中托管项目(对于某些身份验证和授权测试)。

我看到的大多数WCF数据服务示例都使用 ASP.NET Web应用程序。我可以用它,但它似乎很乱。我不是在创建一个网页,而且与 ASP.NET Web应用程序项目有关的内容似乎集中在网站上(默认情况下它有两个网页和一个母版页。)

我想使用 WCF服务应用程序项目,因为它似乎更关注我需要的东西。但我无法弄清楚如何将它连接到我的ODataProject.MyODataService类。

如果可以,有人可以发布如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

将WCF服务应用程序项目添加到解决方案时,您将看到添加了以下文件:

  1. IService1.cs
  2. Service1.svc
  3. 将这些重命名为对您的项目有意义的内容。

    将服务接口保存在与实际实现该功能的代码分开的文件中是个好主意。

    您希望通过WCF公开的任何公共方法的接口(方法名称加上输入和返回参数)应该在IService1.cs文件中定义。 Service.svc文件有一个名为Service1.svc.cs的“代码隐藏”文件。您可以在此处编写在IService1.cs

    中定义的方法的实际实现

    右键单击Service1.svc文件,然后选择“查看标记”。然后,您将看到代码如何链接到IIS。

    右键单击新的WCF服务应用程序,选择“属性/ Web”。在“服务器”部分中,选择“使用本地IIS Web服务器”。确保将代码复制到虚拟目录。如果您在服务web.config中配置了元数据交换点(MEX)端点,则应该能够“浏览”IE中的.svc文件并获取服务描述。

    很抱歉,如果以上内容解释了您已经知道但我不确定您错过了什么。如果需要,请随时提供更多详细信息,我会尽力帮助。