Impostazione del server per l'attesa delle richieste di servizi Web XML nativi
Per impostare un'istanza di SQL Server 2005 come servizio Web che offre l'attesa nativa delle richieste SOAP HTTP, è necessario creare un endpoint HTTP (spazio dei nomi URL) e definirne le proprietà nonché i metodi esposti.
Gli endpoint HTTP creati per l'utilizzo con SQL Server 2005 sono in grado di attendere e ricevere richieste attraverso la stessa porta TCP (porta 80) utilizzata da Microsoft Internet Information Services (IIS) per il servizio Web. Ciò è possibile perché ogni URL, indipendentemente dal fatto che sia utilizzato da SQL Server o da IIS, viene registrato nel sistema operativo per l'utilizzo attraverso il listener HTTP di sistema (Http.sys).
Si supponga ad esempio che sia stato creato un endpoint con l'URL http://MyServer/MySql endpoint
. L'endpoint viene quindi registrato con Http.sys. Quando viene inviata una richiesta SOAP all'endpoint, la richiesta viene innanzitutto inoltrata al server specificato nell'URL (MyServer
). Al momento della ricezione della richiesta, il livello Http.sys sul server confronta la parte restante dell'URL con l'endpoint registrato e inoltra la richiesta direttamente all'istanza di SQL Server, ignorando IIS. Inoltre, se si utilizza la console Gestione servizi Internet (Inetmgr.exe), è possibile creare una directory virtuale che equivale a un endpoint HTTP per IIS con un URL diverso, ad esempio http://MyServer/MyVDir
.
Creazione e gestione di endpoint
Per creare e gestire endpoint, utilizzare le istruzioni Transact-SQL seguenti:
- CREATE ENDPOINT
Consente di creare endpoint, definire i metodi per cui le applicazioni client possono inviare richieste SOAP HTTP all'endpoint, impostare l'autenticazione e specificare le porte. - ALTER ENDPOINT
Consente di aggiungere, eliminare o modificare i metodi, nonché di modificare le opzioni per l'endpoint. - DROP ENDPOINT
Consente di eliminare endpoint indesiderati o obsoleti.
Autorizzazioni e autenticazione per l'endpoint
Per creare, modificare o eliminare endpoint HTTP è necessario disporre delle autorizzazioni appropriate. Per accedere agli endpoint è necessaria l'autenticazione. Questi requisiti sono descritti in dettaglio negli argomenti seguenti:
- GRANT Endpoint Permissions (Transact-SQL)
- Tipi di autenticazione dell'endpoint
- Configurazione del driver HTTP in modalità kernel (Http.sys)
Programmabilità sul Web
Per esporre stored procedure o funzioni definite dall'utente, vedere l'argomento seguente:
Ambiente di esecuzione predefinito
Per impostazione predefinita, le richieste SOAP HTTP a servizi Web XML nativi in SQL Server 2005 vengono eseguite in base alle impostazioni incluse nella tabella seguente.
- SET ANSI_NULL_DFLT_ON ON
Se l'opzione predefinita ANSI NULL per il database è impostata su FALSE, l'impostazione predefinita per il supporto dei valori Null delle nuove colonne viene ignorata. Per ulteriori informazioni, vedere SET ANSI_NULL_DFLT_ON (Transact-SQL).
- SET QUOTED_IDENTIFIER ON
È possibile racchiudere gli identificatori tra virgolette doppie ed è necessario racchiudere i valori letterali tra virgolette singole. Per ulteriori informazioni, vedere SET QUOTED_IDENTIFIER (Transact-SQL).
- SET NUMERIC_ROUNDABORT OFF
In seguito alla perdita di precisione non viene visualizzato alcun messaggio di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato. Per ulteriori informazioni, vedere SET NUMERIC_ROUNDABORT (Transact-SQL).
- SET ARITHABORT ON
Se durante l'esecuzione della query si verifica un errore di divisione per zero o di overflow, la query o il batch viene terminato. Per ulteriori informazioni, vedere SET ARITHABORT (Transact-SQL).
- SET ANSI_WARNINGS ON
Se le funzioni di aggregazione, quali SUM e AVG, includono valori Null, viene generato un messaggio di avviso. Per ulteriori informazioni, vedere SET ANSI_WARNINGS (Transact-SQL).
- SET ANSI_NULLS ON
I confronti con un valore Null eseguiti mediante gli operatori Uguale (=) e Diverso da (<>) restituiscono FALSE. Per ulteriori informazioni, vedere SET ANSI_NULLS (Transact-SQL).
- SET CONCAT_NULL_YIELDS_NULL ON
Il concatenamento di un valore Null con una stringa restituisce NULL. Per ulteriori informazioni, vedere SET CONCAT_NULL_YIELDS_NULL (Transact-SQL).
- SET ANSI_PADDING ON
Nelle colonne in cui sono archiviati valori di dimensioni inferiori alle dimensioni definite per la colonna viene eseguito il riempimento. Nelle colonne con spazi vuoti finali nei dati di tipo char, varchar, binary e varbinary gli spazi e gli zeri finali non vengono rimossi. Per ulteriori informazioni, vedere SET ANSI_PADDING (Transact-SQL).
- SET CURSOR_CLOSE_ON_COMMIT ON
Quando viene eseguito il commit o il rollback di una transazione, tutti i cursori aperti vengono chiusi. Per ulteriori informazioni, vedere SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).
- SET IMPLICIT_TRANSACTIONS OFF
Per impostazione predefinita, nelle sessioni SOAP HTTP le transazioni vengono eseguite in modalità autocommit. In base a questa modalità viene eseguito il commit di tutte le singole istruzioni completate correttamente. Per ulteriori informazioni, vedere SET IMPLICIT_TRANSACTIONS (Transact-SQL).
Considerazioni sul failover dei cluster di SQL Server 2005 per i servizi SOAP HTTP
Durante l'installazione di SQL Server 2005 è consigliabile utilizzare un account di dominio come account del servizio SQL e verificare che l'account non disponga di diritti di amministrazione completi nel computer locale. Questa operazione è caratterizzata da alcune implicazioni quando un server SQL viene impostato come server virtuale in un cluster di Windows. È quindi necessario considerare determinati aspetti nella configurazione dei servizi nativi SOAP HTTP per SQL.
In SQL Server 2005 viene utilizzato il driver HTTP di . Questo listener HTTP è progettato per eseguire il routing delle richieste a qualsiasi applicazione che lo sottoscriva nella piattaforma Windows, inclusi i servizi SQL Server e IIS. Per sottoscrivere questo servizio, è necessario che le applicazioni chiamino le API HTTP per riservare l'URL principale specifico dell'applicazione, denominato anche spazio dei nomi. In base a questa prenotazione il driver HTTP esegue il routing di tutte le richieste successive dall'URL specificato all'applicazione sottoscritta. La chiamata a tali API HTTP deve essere eseguita nel contesto di un account con diritti amministrativi di Windows locali. In SQL Server 2005 tali chiamate vengono eseguite utilizzando una stored procedure speciale denominata sp_reserve_http_namespaces. Per ulteriori informazioni a riguardo, vedere Prenotazione di uno spazio dei nomi HTTP. Questa stored procedure crea un'associazione tra l'URL di primo livello e l'account del servizio SQL per il routing del driver HTTP di Windows. Se l'account del servizio SQL non dispone di diritti amministrativi nel computer locale, è necessario eseguire la stored procedure utilizzando un account di amministratore locale di Windows. Dopo la registrazione dello spazio dei nomi, è possibile creare gli endpoint SOAP SQL con tale URL per reindirizzare le richieste HTTP successive. In un ambiente cluster la prenotazione dello spazio dei nomi HTTP deve essere eseguita per ognuno dei nodi da un amministratore di Windows locale. Ciò garantisce che il servizio HTTP continui a indirizzare le richieste al server SQL anche qualora si verifichi un failover in uno qualsiasi dei nodi.
Un'altra considerazione relativa al failover dei cluster con SQL Server 2005 e HTTP-SOAP riguarda l'utilizzo di certificati di crittografia per le richieste recapitate tramite il canale SSL. Per ulteriori informazioni, vedere Configurazione di un certificato per l'utilizzo con SSL. Anche in questo caso, in un ambiente cluster è necessario configurare i certificati singolarmente per ogni nodo. Come oggetto dei certificati è necessario specificare il nome completo del server virtuale. Per verificare che l'autenticazione Kerberos tramite HTTP sia configurata, vedere Registrazione di nomi SPN Kerberos utilizzando Http.sys, argomento valido anche per i cluster.
Vedere anche
Riferimento
Struttura dei messaggi di richiesta e di risposta SOAP
Struttura dei messaggi di richiesta e di risposta SOAP
Linee guida e limitazioni per i servizi Web XML nativi
Concetti
Altre risorse
Sviluppo di applicazioni client
Utilizzo dei servizi Web XML nativi in SQL Server 2005