Compartir a través de


Cómo: Desarrollar un servicio de datos WCF que se ejecuta en IIS

En este tema se muestra cómo utilizar WCF Data Services para crear un servicio de datos basado en la base de datos de ejemplo Northwind que está hospedada en una aplicación web ASP.NET que se ejecuta en Internet Information Services (IIS). Para obtener un ejemplo de cómo crear el mismo servicio de datos de Northwind que una aplicación web ASP.NET que se ejecuta en el servidor de desarrollo de ASP.NET, vea el Tutorial rápido de WCF Data Services.

Dd728288.note(es-es,VS.100).gifNota:
Para crear el servicio de datos de Northwind, debe tener instalada la base de datos de ejemplo Northwind en su equipo local.Para descargar esta base de datos de ejemplo, vea la página de descargas de las Bases de datos de ejemplo de SQL Server.

En este tema se muestra cómo crear un servicio de datos utilizando el proveedor de Entity Framework. Están disponibles otros proveedores de servicios de datos. Para obtener más información, vea Proveedores de servicios de datos (WCF Data Services).

Una vez creado el servicio, debe proporcionar acceso a los recursos del servicio de datos de forma explícita. Para obtener más información, vea Cómo: Habilitar el acceso al servicio de datos (WCF Data Services).

Para crear la aplicación web ASP.NET que se ejecuta en IIS

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo y, a continuación, seleccione Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, seleccione Visual Basic o Visual C# como el lenguaje de programación.

  3. En el recuadro Plantillas, seleccione Aplicación web ASP.NET. Nota: si usa Visual Studio Web Developer, tendrá que crear un nuevo sitio web en lugar de una nueva aplicación web.

  4. Escriba NorthwindService como nombre del proyecto.

  5. Haga clic en Aceptar.

  6. En el menú Proyecto, seleccione Propiedades de NorthwindService.

  7. Seleccione la pestaña Web y a continuación, haga clic en Usar servidor web de IIS local.

  8. Haga clic en Crear directorio virtual y, a continuación, en Aceptar.

  9. Ejecute el siguiente comando en el símbolo del sistema:

    "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i
    

    De este modo, se garantiza que Windows Communication Foundation (WCF) se registra en el equipo.

  10. Mediante SQL Server Management Studio o la utilidad sqlcmd.exe, ejecute el siguiente comando de Transact-SQL con la instancia de SQL Server que tenga la base de datos Northwind asociada:

    CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS;
    GO 
    

    De este modo, se crea un inicio de sesión en la instancia de SQL Server para la cuenta de Windows utilizada para ejecutar IIS. Esto permite a IIS conectarse a la instancia de SQL Server.

  11. Con la base de datos Northwind asociada, ejecute los siguientes comandos de Transact-SQL:

    USE Northwind
    GO
    CREATE USER [NT AUTHORITY\NETWORK SERVICE] 
    FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo];
    GO
    ALTER LOGIN [NT AUTHORITY\NETWORK SERVICE] 
    WITH DEFAULT_DATABASE=[Northwind]; 
    GO
    EXEC sp_addrolemember 'db_datareader', 'NT AUTHORITY\NETWORK SERVICE'
    GO
    EXEC sp_addrolemember 'db_datawriter', 'NT AUTHORITY\NETWORK SERVICE'
    GO 
    

    Esto otorga derechos al inicio de sesión nuevo, lo que permite a IIS leer y escribir datos en la base de datos Northwind.

Para definir el modelo de datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de ASP.NET y, a continuación, seleccione Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione ADO.NET Entity Data Model.

  3. Como nombre del modelo de datos, escriba Northwind.edmx.

  4. En el Asistente para Entity Data Model, seleccione Generar desde la base de datos y, a continuación, haga clic en Siguiente.

  5. Para conectar el modelo de datos a la base de datos efectúe uno de los pasos siguientes y después haga clic en Siguiente:

    • Si no tiene una conexión de base de datos ya configurada, haga clic en Nueva conexión y cree una conexión nueva. Para obtener más información, vea Cómo: Crear conexiones a bases de datos de SQL Server. Esta instancia de SQL Server debe tener adjuntada la base de datos de ejemplo Northwind.

      o bien

    • Si tiene una conexión de base de datos ya configurada para conectarse a la base de datos Northwind, seleccione esa conexión en la lista de conexiones.

  6. En la página final del asistente, seleccione las casillas de todas las tablas de la base de datos y desactive las casillas correspondientes a las vistas y los procedimientos almacenados.

  7. Haga clic en Finalizar para cerrar el asistente.

    Dd728288.note(es-es,VS.100).gifNota:
    Este modelo de datos generado expone las propiedades de clave externa en los tipos de entidad.Los modelos de datos creados mediante Visual Studio 2008 no incluyen estas propiedades de clave externa.Debido a esto, debe actualizar las clases del servicio de datos de cliente de cualquier aplicación cliente que se haya creado para tener acceso al servicio de datos de Northwind que se creó con Visual Studio 2008 antes de intentar tener acceso a esta versión del servicio de datos de Northwind.

Para crear el servicio de datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto de ASP.NET y, a continuación, seleccione Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione Servicio de datos de ADO.NET.

  3. Como nombre del servicio, escriba Northwind.

    Visual Studio crea los archivos de código y marcado XML para el nuevo servicio. De forma predeterminada, se abre la ventana del editor de código. En el Explorador de soluciones, el servicio tendrá el nombre Northwind, con la extensión .svc.cs o .svc.vb.

  4. En el código para el servicio de datos, reemplace el comentario /* TODO: put your data source class name here */ de la definición de la clase que define el servicio de datos por el tipo que es el contenedor de entidades del modelo de datos, que en este caso es NorthwindEntities. La definición de la clase debería ser como la siguiente:

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

Vea también

Conceptos

Exponer los datos como servicio (WCF Data Services)