我試着去主機到同一合同的不同服務實現相同的合同。WCF多個服務中相同的配置
我試着在同一WindowsService舉辦兩個:
private ServiceHost _host;
private ServiceHost _dummy;
protected override void OnStart(string[] args)
{
_host = new ServiceHost(typeof(Service));
_host.Open();
//trying to avoid the app.config beeing used - because its already been hoste by _host
_dummy = new ServiceHost(typeof(TestDummyService));
_dummy.Description.Endpoints.Clear();
_dummy.AddServiceEndpoint(typeof(IService),
new WebHttpBinding(),
@"<link>/Dummy.svc/");
_dummy.ChannelDispatchers.Clear();
_dummy.Open();
}
這是配置文件:
<system.serviceModel>
<services>
<service name="namespace.Service">
<host>
<baseAddresses>
<add baseAddress="<link>/Service.svc"/>
</baseAddresses>
</host>
<endpoint address=""
binding="webHttpBinding"
contract="namespace.IService"
behaviorConfiguration="web" />
<endpoint address="/mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors >
<behavior>
<serviceMetadata httpGetEnabled="true"
httpGetUrl="<link>/Service.svc/About" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name ="web">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
在/Service.svc/About與合同 'IHttpGetHelpPageAndMetadataContract' 的ChannelDispatcher無法打開。
任何幫助表示讚賞。
更新1 我的目標是在一個WindowsService中託管同一合同(IService
)的2個不同實現。
我也想在配置文件中配置它們兩個。
hi - thnks的反饋。沒有不幸,我不能。因爲端點不讓我決定我使用什麼實現。這是在服務標籤中指定的:'' –
2013-02-08 12:41:22