2011-09-02 156 views
0

當我添加項目wcf服務時,我可以在添加服務參考下看到它。 但將接口移動到另一個項目後,但在接口的合同中輸入了相同的名稱空間和類型適當的引用後 - 我無法在「添加服務引用」下看到我的服務。來自其他項目的合同而不是界面不可見

爲什麼?我錯過了配置文件中的東西?

服務配置文件應該在接口或合同項目中?

編輯。

第一個項目

using System.ServiceModel; 
namespace Project.ServiceModel 
{ 
    [ServiceContract] 
    public interface ITest 
    { 
     [OperationContract] 
     void DoWork(); 
    } 
} 

第二個項目

using Project.ServiceModel; 

namespace Project.Service 
{ 
    public class Test : ITest 
    { 
     public void DoWork() 
     { 
     } 
    } 
} 

並且該配置在測試類項目

<system.serviceModel> 
<services> 
    <service name="Project.Service.Test"> 
    <endpoint address="http://localhost:8732/Test/" binding="wsHttpBinding" 
     contract="Project.ServiceModel.ITest"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8732/LMTService/" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
</system.serviceModel> 
+0

您是否添加了對您的服務接口的項目引用? – Tim

+0

interface =合同。請澄清你的問題,並提供一些代碼示例。 –

回答

2

編輯contract="Project.ServiceModel.ITest"引用一個完全合格的域名(包括裝配名稱,而不是隻有命名空間)。與contract="Project.ServiceModel.ITest, Project.ServiceModel"類似,假設您的項目名稱爲Project.ServiceModel,並且程序集名稱設置爲與項目名稱相同(默認情況下通常是這樣)。

也許這是一個錯字,但你的mex地址看起來不正確。應該是http://localhost:8732/Test/mex。它仍然可能適用於你當前的配置,但你打破了慣例。

+0

當我使用WCF Servise Host Tool時,它顯示錯誤「服務無法啓動,該服務沒有定義端點,請在配置文件中添加至少一個終端服務,然後重試。但正如你看到下面我有終點! ;/ – netmajor

+0

我解決了問題!我將behaviorConfiguration設置爲端點,而不是服務! – netmajor

相關問題