WCF-so binden Sie mehrere service-Verträge?

First off, werde ich mich entschuldigen, da dies wohl ein Duplikat, aber alles, was ich gelesen habe scheint entweder unvollständig oder verwirrend, denn ich bin sehr neu in WCF.

Ich im Grunde Suche, um die Bereitstellung eines WCF-Diensts in IIS mit 2 Endpunkten zugänglich und wurden im Kreise herum den ganzen Tag 🙁

Ich habe einen WCF service library dll mit der folgenden Struktur

App.config
TestSvc1.cs
ITestSvc1.cs
TestSvc2.cs
ITestSvc2.cs

Dies funktioniert gut in der VS WCF test client und bin jetzt der Bereitstellung auf IIS so habe ich eine WCF-Service-Anwendung und auf die dll. Dieses Projekt hat folgende Struktur

Service1.svc
Web.config

Service1.svc enthält diese

<%@ ServiceHost Language="C#" Debug="true" 
    Service="WCFServices.TestServices.ITestSvc1" CodeBehind="Service1.svc.cs" %>

und meine web.config hat die folgenden

<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>

Jegliche Hilfe würde sehr geschätzt werden. Wie Sie sehen können ich habe versucht, das hinzufügen eines zusätzlichen Endpunkt in der web.config aber das funktioniert nicht, ich bekomme eine Fehlermeldung, dass TestSvc2 Anrufe können nicht gefunden werden in TestSvc1 ich glaube, das bezieht sich auf den Eintrag in Service1.svc

Las ich auch über das erstellen einer Klasse, die erbt diese Schnittstellen, aber ich bin nicht sicher, genau, wie es zu implementieren, basierend auf dem, was ich schon oben. Muss ich zum ändern der Service1.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
}

Jede Hilfe wäre sehr dankbar Jungs vielen Dank 🙂

  • Eine kleine Sache, die ich sehe, ist, dass, die Sie angegeben haben unterschiedliche namespaces für den service 1 und 2, nämlich WCFServices.TestServices.ITestSvc1 und WCFServices.TestService.ITestSvc2. Hinweis: die fehlende s in TestServices.ITestSvc2.
  • Ja sorry das ist nur ein Tippfehler hier nur zu verdeutlichen, die Dinge besser, krank zu Bearbeiten 🙂
InformationsquelleAutor JazziJeff | 2013-01-15
Schreibe einen Kommentar