Compartir a través de


Host de servicio de datos (marco de trabajo de los servicios de datos de ADO.NET)

Los servicios de datos de ADO.NET no son servicios de red independientes . Un servicio de datos de ADO.NET no enlaza ni está a la escucha en un socket de red las solicitudes de entrada en sus puntos de entrada de Transferencia de estado de representación (REST, Representational State Transfer). En su lugar, un servicio de datos de ADO.NET es un componente hospedado en un entorno como Windows Communication Foundation (WCF) que proporciona los medios de conexión de red de servidor básicos. El host administra las interacciones directas con la red y admite el almacenamiento en caché, las escalabilidad y los módulos de autenticación.

Los servicios de datos de ADO.NET definen una interfaz de alojamiento genérica IDataServiceHost que resume su implementación de un host concreto. Esto permite a los servicios de datos de ADO.NET ejecutarse en un intervalo de entornos del host, desde las implementaciones en el servidor HTTP personalizadas como WCF, ASP.NET e IIS.

Nota: cuando se utiliza un host de ASP.NET los caracteres (:) y (/) están bloqueados y producirán un código de respuesta 400 de solicitud incorrecta si se utilizan. Al instalar la Revisión (en inglés) se resuelve el problema de los dos puntos (:).

En los ejemplos de las secciones siguientes se asume que se ha definido un servicio de datos de ADO.NET como se detalla a continuación:

namespace MyDataService 
{
    public class MyAstoriaDataService :
              DataService<NorthwindModel.NorthwindEntities> 
    { // service implementation } 
}

Hospedar un servicio de datos de ADO.NET mediante Windows Communication Foundation (WCF) y ASP.NET

Los servicios de datos de ADO.NET se pueden hospedar como un punto final WCF dentro de una aplicación ASP.NET. En esta implementación, WCF y ASP.NET administran la interacción de redes de un servicio de datos de ADO.NET.

Para hospedar un servicio de datos de ADO.NET en WCF dentro de una aplicación ASP.NET, defina un nuevo punto final WCF como sigue:

  1. Cree un nuevo punto final de servicio WCF; se trata del archivo .svc.

  2. En la declaración de ServiceHost:

    • El valor del atributo Factory debe ser System.Data.Services.DataServiceHostFactory.

    • El valor del atributo Service debe ser el nombre completo de la clase del espacio de nombres del servicio de datos que se va a exponer.

MyAstoriaDataService.svc:
<%@ ServiceHost Language="C#"
 Factory="System.Data.Services.DataServiceHostFactory"
 Service="MyAstoriaDataService.MyAstoriaDataService"%> 

Hospedar un servicio de datos de ADO.NET mediante Windows Communication Foundation (WCF) y ASP.NET

Los servicios de datos de ADO.NET se pueden hospedar utilizando las clases WebServiceHost o ServiceHost de WCF. En el ejemplo siguiente se muestra un servicio de datos que utiliza la clase WebServiceHost.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Web;
using System.Data.Services;

namespace SelfHost
{
    class Program
    {
        static void Main(string[] args)
        {
            Uri baseAddress =
                  new Uri("https://localhost:8000/dataservice");
            HostWithWebServiceHost(baseAddress);

            Console.WriteLine(
                 "Host running - https://localhost:8000/dataservice");
            Console.WriteLine("Press any key to shut down service...");

            Console.ReadKey();
            host.Close();
        }

        private static void HostWithWebServiceHost(Uri baseAddress)
        {

            WebServiceHost host = new WebServiceHost(typeof(MyAstoriaDataService), 
                                      baseAddress);
            WebHttpBinding binding = new WebHttpBinding();
            host.AddServiceEndpoint(
               typeof(System.Data.Services.IRequestHandler), binding, 
               "WebServiceHost");
            host.Open();
        }
    }
}

Vea también

Conceptos

Modelo de datos (marco de trabajo de los servicios de datos de ADO.NET)
Inicio rápido del servicio de datos (marco de trabajo de los servicios de datos de ADO.NET)