我是WCF的新手,並試圖讓我有一些想法。配置多個端點的WCF
基本上我有在其web.config中的以下網頁WCF應用程序項目:
<system.serviceModel>
<services>
<service name="WcfService1.ServiceContract.IDirectorySearchService" behaviorConfiguration="defaultServiceBehavior">
<endpoint name="restxml" address="xml" binding="webHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchServiceXml" behaviorConfiguration="xmlRestBehavior"/>
<endpoint name="restjson" address="json" binding="webHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchServiceJson" behaviorConfiguration="jsonRestBehavior"/>
<endpoint name="soap" address="soap" binding="basicHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchService"/>
<endpoint name="mex" address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="xmlRestBehavior">
<webHttp/>
</behavior>
<behavior name="jsonRestBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
我的界面是這樣的:
[ServiceContract]
public interface IDirectorySearchServiceXml
{
[OperationContract]
[WebGet(UriTemplate = "Search/")]
SearchResults Search();
}
[ServiceContract]
public interface IDirectorySearchServiceJson
{
[OperationContract]
[WebGet(UriTemplate = "Search/")]
SearchResults Search();
}
[ServiceContract]
public interface IDirectorySearchService
{
[OperationContract]
SearchResults Search(int? sportId, int? instituteId, DateTime? startDate, DateTime? endDate);
}
現在我有一個小麻煩的部分與什麼我需要得到這個啓動和運行...就像給了這個.svc文件我需要什麼,我有配置權...還有我需要使用什麼地址來通過瀏覽器或通過WCF測試客戶端。注意我目前使用3.5。
乾杯 安東尼
UPDATE:
所以如果我有類似下面,我將需要3個不同的SVC文件...如果是這樣的話那麼就沒有什麼意義有在終點地址部分......
public class DirectorySearchServiceXml : IDirectorySearchServiceXml
{
...
}
public class DirectorySearchServiceJson : IDirectorySearchServiceJson
{
...
}
public class DirectorySearchService : IDirectorySearchService
{
...
}
但我可以創建1類exsplictly implments所有3個接口,那我就只有1個SVC,然後在地址變成培訓相關...是正確的?
是的,如果你有**三個類**實現服務契約,你需要**三個SVC文件**。如果你只有**一類**實現所有三個接口,那麼你需要**一個SVC文件** - 每個類實現您的合同一個SVC文件 – 2010-04-26 08:13:16
我已經做了一個類實現所有三個接口,我得到出現以下錯誤:「服務'WcfService1.Service.DirectorySearchService'沒有應用程序(非基礎設施)端點,這可能是因爲沒有爲您的應用程序找到配置文件,或者因爲在配置中找不到匹配服務名稱的服務元素文件,或者因爲在服務元素中沒有定義端點。「有任何想法嗎?我的配置和上面一樣,svc看起來像<%@ ServiceHost Language =「C#」Debug =「true」Service =「WcfService1.Service.DirectorySearchService」%> – 2010-04-26 08:55:45
我使用的URL是「http:// localhost:16089/DirectorySearchService.svc/mex「 – 2010-04-26 08:57:02