Hosting del servizio dati (WCF Data Services)Hosting the Data Service (WCF Data Services)

Utilizzando WCF Data ServicesWCF Data Services, è possibile creare un servizio che espone dati come un Protocollo OData (Open Data)Open Data Protocol (OData) feed.By using WCF Data ServicesWCF Data Services, you can create a service that exposes data as an Protocollo OData (Open Data)Open Data Protocol (OData) feed. Questo servizio dati è definito come una classe che eredita da DataService<T>.This data service is defined as a class that inherits from DataService<T>. Questa classe fornisce la funzionalità necessaria per elaborare i messaggi di richiesta, eseguire aggiornamenti sull'origine dati e generare messaggi di risposta, come richiesto dal ODataOData.This class provides the functionality required to process request messages, perform updates against the data source, and generate responses messages, as required by ODataOData. Tuttavia, un servizio dati non è possibile associare e restare in attesa su un socket di rete per le richieste HTTP in ingresso.However, a data service cannot bind to and listen on a network socket for incoming HTTP requests. Per questa funzionalità obbligatoria, il servizio dati si basa su un componente di hosting.For this required functionality, the data service relies on a hosting component.

L'host del servizio dati esegue le attività seguenti per conto del servizio dati:The data service host performs the following tasks on behalf of the data service:

  • È in attesa delle richieste e le indirizza al servizio dati.Listens for requests and routes these requests to the data service.

  • Crea un'istanza del servizio dati per ogni richiesta.Creates an instance of the data service for each request.

  • Richiede che il servizio dati elabori la richiesta in ingresso.Requests that the data service process the incoming request.

  • Invia la risposta per conto del servizio dati.Sends the response on behalf of the data service.

Per semplificare l'hosting di un servizio dati, WCF Data ServicesWCF Data Services è progettato per integrarsi con Windows Communication Foundation (WCF).To simplify hosting a data service, WCF Data ServicesWCF Data Services is designed to integrate with Windows Communication Foundation (WCF). Il servizio dati fornisce un'implementazione WCF predefinita che funge da host del servizio dati in un ASP.NETASP.NET dell'applicazione.The data service provides a default WCF implementation that serves as the data service host in an ASP.NETASP.NET application. È pertanto possibile ospitare un servizio dati in uno dei modi seguenti:Therefore, you can host a data service in one of the following ways:

  • In un'applicazione ASP.NETASP.NET.In an ASP.NETASP.NET application.

  • In un'applicazione gestita che supporta servizi WCF indipendenti.In a managed application that supports self-hosted WCF services.

  • In un altro host del servizio dati personalizzato.In some other custom data service host.

Hosting di un servizio dati in un'applicazione ASP.NETHosting a Data Service in an ASP.NET Application

Quando si utilizza il Aggiungi nuovo elemento finestra di dialogo in Visual Studio per definire un servizio dati in un'applicazione ASP.NET, lo strumento genera due nuovi file nel progetto.When you use the Add New Item dialog in Visual Studio to define a data service in an ASP.NET application, the tool generates two new files in the project. Il primo file presenta un'estensione .svc e indica al runtime WCF come creare un'istanza del servizio dati.The first file has a .svc extension and instructs the WCF runtime how to instantiate the data service. Di seguito è riportato un esempio di questo file per il servizio dati di esempio Northwind creato al completamento di delle Guide rapide:The following is an example of this file for the Northwind sample data service created when you complete the quickstart:

<%@ ServiceHost Language="C#"   
    Factory="System.Data.Services.DataServiceHostFactory,   
            System.Data.Services, Version=4.0.0.0,   
            Culture=neutral, PublicKeyToken=b77a5c561934e089"   
    Service="NorthwindService.Northwind" %>   

Questa direttiva richiede all'applicazione la creazione dell'host del servizio per la classe di servizi dati denominata tramite la classe DataServiceHostFactory.This directive tells the application to create the service host for the named data service class by using the DataServiceHostFactory class.

La pagina code-behind per il file .svc contiene la classe che corrisponde all'implementazione del servizio dati stesso, definita come segue per il servizio dati di esempio di Northwind:The code-behind page for the .svc file contains the class that is the implementation of the data service itself, which is defined as follows for the Northwind sample data service:

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

Poiché un servizio dati si comporta come un servizio WCF, si integra con ASP.NETASP.NET e segue il modello di programmazione Web di WCF.Because a data service behaves like a WCF service, the data service integrates with ASP.NETASP.NET and follows the WCF Web programming model. Per ulteriori informazioni, vedere servizi WCF e ASP.NET e modello di programmazione HTTP Web WCF.For more information, see WCF Services and ASP.NET and WCF Web HTTP Programming Model.

Servizi WCF indipendentiSelf-Hosted WCF Services

Poiché incorpora un'implementazione WCF, WCF Data ServicesWCF Data Services supportano un servizio dati come servizio WCF Self-Hosted.Because it incorporates a WCF implementation, WCF Data ServicesWCF Data Services support self-hosting a data service as a WCF service. Un servizio può essere indipendente in tutte le applicazioni .NET Framework.NET Framework, quale un'applicazione console.A service can be self-hosted in any .NET Framework.NET Framework application, such as a console application. La classe DataServiceHost, che eredita da WebServiceHost, viene usata per creare un'istanza del servizio dati in un indirizzo specifico.The DataServiceHost class, which inherits from WebServiceHost, is used to instantiate the data service at a specific address.

Il self-hosting può essere usato per lo sviluppo e il test in quanto semplifica la distribuzione del servizio e la risoluzione dei relativi problemi.Self-hosting can be used for development and testing because it can make it easier to deploy and troubleshoot the service. Questo tipo di hosting non fornisce tuttavia le caratteristiche avanzate di gestione e hosting offerte da ASP.NETASP.NET o da Internet Information Services (IIS).However, this kind of hosting does not provide the advanced hosting and management features provided by ASP.NETASP.NET or by Internet Information Services (IIS). Per ulteriori informazioni, vedere Hosting in un'applicazione gestita.For more information, see Hosting in a Managed Application.

Definizione di un host del servizio dati personalizzatoDefining a Custom Data Service Host

Per i casi in cui l'implementazione dell'host WCF è troppo restrittiva, è anche possibile definire un host personalizzato per un servizio dati.For cases where the WCF host implementation is too restrictive, you can also define a custom host for a data service. Qualsiasi classe che implementi l'interfaccia IDataServiceHost può essere usata come host di rete per un servizio dati.Any class that implements IDataServiceHost interface can be used as the network host for a data service. Un host personalizzato deve implementare l'interfaccia IDataServiceHost e deve essere in grado di gestire le responsabilità di base seguenti dell'host del servizio dati:A custom host must implement the IDataServiceHost interface and be able to handle the following basic responsibilities of the data service host:

  • Fornire al servizio dati il percorso radice del servizio.Provide the data service with the service root path.

  • Elaborare le informazioni delle intestazioni di richieste e risposte per l'implementazione del membro IDataServiceHost appropriato.Process request and response headers information to the appropriate IDataServiceHost member implementation.

  • Gestire le eccezioni generate dal servizio dati.Handle exceptions raised by the data service.

  • Convalidare i parametri contenuti nella stringa di query.Validate parameters in the query string.

Vedere ancheSee Also

Definizione di WCF Data ServicesDefining WCF Data Services
Esposizione dei dati come un servizioExposing Your Data as a Service
Configurazione del servizio datiConfiguring the Data Service