2010-06-18 12 views

risposta

16

ho fatto in questo modo:

  • Costruisci la tua servizio WCF in un nuovo progetto di tipo libreria di classi
  • Mettere le interfacce e le implementazioni in questa biblioteca in uno spazio dei nomi come MyServiceLib
  • Aggiungi al tuo progetto web un file come MyService.svc con una sola istruzione, la direttiva ServiceHost:

    <%@ ServiceHost Service="MyServiceLib.MyService" %> 
    

    dove MyServiceLib è il nome dello spazio dei nomi del servizio WCF e MyService il nome della classe di implementazione del servizio. (Questa semplice installazione è per il caso in cui si distribuisce il servizio come un assembly compliant (per esempio nella directory). Se si desidera distribuire con source e lasciare il complile alla prima richiesta, è necessario aggiungere altri attributi all'host del servizio direttiva (linguaggio di programmazione, file di origine, ecc)

  • Mettere la configurazione del servizio in web.config nella sezione <system.serviceModel>.
+0

Suggerimento utile: se si tenta di incollare il collegamento precedente in un file .svc, Visual Studio proverà ad aiutarti aggiungendo un valore vuoto "" all'elemento 'ServiceHost' (in modo che assomigli a ServiceHost = ""). Questo rovinerà il tuo tentativo di avviare il servizio con un messaggio che dice 'Parser Error Message: manca il nome della direttiva.' Questo è facilmente risolto rimuovendo il valore vuoto. –

3

Preferisco separare il mio contratti e implementazioni nelle proprie assemblee, questo si presta a implementazioni alternative basate sugli stessi contratti lungo la strada.