2010-06-18 17 views

Respuesta

16

que he hecho de esta manera:

  • Construir su servicio WCF en un nuevo proyecto de biblioteca de clases tipo
  • Ponga sus interfaces y las implementaciones en esta biblioteca en un espacio de nombres como MyServiceLib
  • Agregue a su proyecto web un archivo como MyService.svc con una sola instrucción, la directiva ServiceHost:

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

    donde MyServiceLib es el nombre del espacio de nombre de su servicio WCF y MyService el nombre de su clase de implementación del servicio. (Esta configuración simple es para el caso cuando implementa su servicio como un ensamblado complilado (en el directorio Bin por ejemplo). Si desea implementar con el código fuente y dejar que el primer compilado lo solicite, debe agregar algunos atributos más al host del servicio. Directiva (lenguaje de programación, el archivo de origen, etc.)

  • Ponga la configuración del servicio en web.config en la sección <system.serviceModel>.
+0

Consejo útil: si intenta pegar el enlace anterior en un archivo .svc, Visual Studio intentará ayudarle agregando un valor "" vacío al elemento 'ServiceHost' (para que se vea como ServiceHost = "") Esto arruinará su intento de iniciar el servicio con un mensaje que dice 'Mensaje de error del analizador: falta el nombre de la directiva'. Esto se soluciona fácilmente eliminando el valor vacío. –

3

Prefiero separar mi contratos y implementaciones en sus propios ensamblajes, esto se presta a implementaciones alternativas basadas en los mismos contratos en el futuro.