WCF como vincular vários contratos de serviço?
Em primeiro lugar, vou pedir desculpas, pois esta é provavelmente uma duplicata, mas tudo o que li parece ser incompleto ou confuso, pois sou muito novo no WCF.
Eu basicamente estou olhando para implantar um serviço WCF no IIS com 2 endpoints acessíveis e foram andando em círculos durante todo o dia :(
Eu tenho uma biblioteca de serviço WCF dll com a seguinte estrutura
App.config
TestSvc1.cs
ITestSvc1.cs
TestSvc2.cs
ITestSvc2.cs
Isso funciona bem no cliente de teste do VS WCF e agora estou implantando no IIS, portanto, criei um aplicativo de serviço WCF e fiz referência à dll. Este projeto tem a seguinte estrutura
Service1.svc
Web.config
Service1.svc
contém isto
<%@ ServiceHost Language="C#" Debug="true"
Service="WCFServices.TestServices.ITestSvc1" CodeBehind="Service1.svc.cs" %>
e meuweb.config
tem o seguinte
<services>
<service name="WCFServices.TestServices.TestSvc2">
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc2">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/wcf2/TestServices/TestSvc2/" />
</baseAddresses>
</host>
</service>
<service name="WCFServices.TestServices.TestSvc1">
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc1"
listenUri="http://localhost:8080/wcf2/service1.svc">
<identity>
<dns value="" />
</identity>
</endpoint>
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc2"
listenUri="http://localhost:8080/wcf2/service1.svc">
<identity>
<dns value="" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/wcf2/TestServices/TestSvc1/" />
</baseAddresses>
</host>
</service>
</services>
Qualquer ajuda seria muito apreciada. Como você pode ver, tentei adicionar um endpoint adicional noweb.config
mas isso não funciona, eu recebo um erro dizendo que chamadas TestSvc2 não podem ser encontradas em TestSvc1, que eu acho que se relaciona com a entrada emService1.svc
Também li sobre a criação de uma classe que herda essas interfaces, mas não tenho certeza de como implementá-la com base no que eu tenho acima. Preciso modificar oService1.svc
?
public interface MultipleSvc : ITestSvc1, ITestSvc2
{
// What exactly do I put here? I have no idea, do I leave it blank? This didn't work for me
}
Qualquer ajuda seria muito apreciada pessoal obrigado :)