2008-09-26 11 views

Antwort

6

entdeckte ich, dass Sie die folgenden Funktionen der Servicehost-Direktive in der * SVC-Datei hinzufügen können, und es wird automatisch Setup WebHttpBinding und WebHttpBehavior für Sie:

Factory="System.ServiceModel.Activation.WebServiceHostFactory" 

Beachten Sie, dass der Namespace etwas anders ist als an anderer Stelle im Internet (z. B. in this MSDN article).

Danach konnte ich den gesamten Abschnitt aus web.config löschen und alles hat noch funktioniert!

+0

Der gesamte "Abschnitt". Ich bin ein Neuling. Kannst du genauer sein? ...? – froggythefrog

2

Stellen Sie sicher, dass Sie eine webHttpBinding-Komponente auf Ihrem Endpunkt verwenden (und nicht eine httpBinding- oder wsHttpBinding-Komponente). Hier ist meine Endpunkt Config ...

<endpoint address="" binding="webHttpBinding" bindingConfiguration="" 
     contract="WcfCore.ICustomer"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
+0

Ich habe das versucht, aber eine Fehlermeldung erhalten: "... AddressFilter Mismatch am EndpointDispatcher." Es stellt sich heraus, dass Sie auch WebHttpBehavior zu Ihrem Verhalten hinzufügen müssen, aber ich weiß nicht, wie das in web.config zu tun ist. – kgriffs

+0

GWTF

1

Sie müssen sicherstellen, dass Sie eine Adresse für Ihren Service-Host zB

<services> 
     <service name="SomeLib.SomeService"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8080/somebase"/> 
      </baseAddresses> 
     </host> 
<!-- And one EndPoint **basicHttpBinding** WILL WORK !!! --> 

     <endpoint 
        address="basic" 
        binding="basicHttpBinding" 
        contract="SomeLib.SomeContract"/> 
</service> 
</services> 

So, jetzt haben, wenn Sie selbst über eine Konsole App-Hosting für eg..you Ihr Host über aufrufen kann:

Wenn die Konsolenanwendung gestartet wird, ist die Adresse auch dann durchsuchbar, wenn sie selbst gehostet wird und Sie Ihre Aktionen basierend auf Ihren webget-uri-Vorlagen aufrufen können.

Mit dieser minimalen Konfiguration können Sie WCF RestFULLY über Selfhosting aufrufen. Wenn Sie in IIS hosten, würde es im Wesentlichen genauso funktionieren, außer dass die SVC-Datei unseren benutzerdefinierten Host ersetzt.