2011-10-28 122 views
1

我有一個解決方案的結構是這樣揭露一個WCF數據服務具有「WCF服務應用程序」項目

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

當您添加WCF服務應用程序項目到您的解決方案,你會看到下面的文件添加:

  1. IService1.cs
  2. Service1.svc

重命名這些東西對你的項目有意義。

將服務接口保存在實際實現該功能的代碼的單獨文件中是一個好主意。

您要通過WCF公開的任何公共方法的接口(方法名稱加上輸入和返回參數)應在IService1.cs文件中定義。 Service.svc文件有一個名爲Service1.svc.cs的「代碼隱藏」文件。這是您編寫在IService1.cs中定義的方法的實際實現的地方

右鍵單擊Service1.svc文件並選擇「查看標記」。然後,您將看到您的代碼如何鏈接到IIS。

右鍵單擊新的WCF服務應用程序,選擇屬性/ Web。在「服務器」部分選擇「使用本地IIS Web服務器」。確保你的代碼被複制到一個虛擬目錄。如果在服務web.config中配置了元數據交換點(MEX)端點,則應該能夠「瀏覽」到IE中的.svc文件並獲取服務描述。

對不起,如果上述解釋你已經知道,但我不完全確定你錯過了什麼。如有需要,請隨時提供更詳細的問題,我會盡力提供幫助。

+0

感謝您的迴應,但這不是我正在尋找的。我正在使用OData(WCF數據服務)而不是WCF服務。我的OData的東西在解決方案的另一個項目中。我需要一種方法從WCF服務應用程序項目中引用它,並讓它在IIS中運行。 – Vaccano

+0

啊,對不起,我沒有聽說過WCF數據服務和OData。在閱讀http://msdn.microsoft.com/en-us/data/aa937697我已經添加到越來越多的技術,我需要閱讀! –

+0

也許這會幫助嗎? http://stackoverflow.com/questions/3764469/how-to-host-wcf-data-service-odata-in-iis7 –