Condividi tramite


Considerazioni relative all'utilizzo di servizi Web

In questa sezione vengono fornite informazioni sugli aspetti da considerare quando si utilizzano servizi Web.

Utilizzo di due caratteri di sottolineatura nel nome di un parametro

I nomi dei parametri dei metodi Web non possono iniziare con "__" (due caratteri di sottolineatura). I nomi che iniziano con questi due caratteri possono generare parti di messaggi Web non supportate e quindi inutilizzabili da XLANG/s.

L'elemento any e gli attributi anyAttribute non sono supportati nei metodi Web

Non è possibile usare l'elemento o qualsiasi attributoAttribute nello schema per un metodo Web.

Utilizzo di parole chiave XLANG/s

Un nome del servizio Web o un nome del metodo Web non può essere una parola chiave in una XLANG/s. Se si usa una parola chiave XLANG/s nel nome del servizio Web o nel nome del metodo Web, si otterrà un errore di compilazione quando si aggiunge il servizio Web. Per un elenco di parole riservate per la lingua XLANG/s, vedere Parole riservate XLANG-s.

Supporto di XLANG/s richiesto per i tipi di parametro

L'utilizzo di un tipo di parametro non supportato da XLANG/s per un metodo Web causerà errori di compilazione. BizTalk Server non supporta ad esempio un parametro costituito da una matrice unidimensionale di tipi di schema. BizTalk Server non supporta inoltre le matrici multidimensionali. Per un elenco di parole che la lingua XLANG/s riserva in BizTalk Server, vedere Parole riservate XLANG-s.

Evitare errori di compilazione causati dall'aggiunta di riferimenti Web contenenti parole chiave o identificatori C#

Quando si usa Il riferimento al servizio per aggiungere riferimenti al servizio ai progetti BizTalk, BizTalk Server converte i tipi di schema necessari per chiamare ogni metodo Web negli schemi. BizTalk Server aggiunge questi schemi a Reference.xsd. Se gli schemi contengono nomi di elemento che sono parole chiave C# o il nome dell'elemento non è valido come identificatore C#, è possibile che venga visualizzato un errore di runtime. Per evitare errori di questo tipo, verificare che nel servizio Web utilizzato non siano contenuti nomi di elementi corrispondenti a parole chiave C# o a identificatori C# non validi.

Non sono supportate più definizioni di servizio/tipo di porta

BizTalk Server supporta l'aggiunta di un file di servizio Web con una singola definizione di servizio e tipo di porta. Se si aggiunge un file WSDL con più definizioni di servizio o di tipo di porta, è possibile che venga visualizzato il seguente errore:

Impossibile generare i file di BizTalk. Riferimento oggetto non impostato su un'istanza di un oggetto.

Supporto per l'utilizzo di matrici esposte dai servizi Web

BizTalk Server può utilizzare matrici unidimensionali e matrici di matrici esposte da servizi Web che non sono servizi Web di BizTalk. Per altre informazioni su come usare le matrici di servizi Web, vedere Come usare matrici di servizi Web.

Nota

La sintassi delle matrici multidimensionali non è supportata. Ad esempio: MyArray[1,5].

Nota

BizTalk Server non supporta l'uso di una matrice di oggetti DataSet esposti da un servizio Web. Il servizio secondario XLANG/s supporta in modo nativo la classe .NET DataSet. Se tuttavia si crea un progetto BizTalk contenente un riferimento Web a un servizio Web che espone una matrice di oggetti .NET DataSet, verranno generati errori quando si tenterà di compilare il progetto.

I parametri dei metodi Web devono essere serializzabili in XML

Tutti i parametri di un servizio Web utilizzato devono essere serializzabili in XML. Se si aggiunge un metodo Web contenente un parametro non serializzabile in XML, è possibile che venga visualizzato il seguente messaggio di errore:

System.Xml.Element deve essere serializzabile in XML per poter essere un tipo di parte di un messaggio.

Nota

I tipi di dati, XmlDocument e DataSet, mentre non Xml Serializable, sono supportati.

Utilizzo di servizi Web di sola messaggistica

Quando si utilizzano servizi Web di sola messaggistica, tutti i nomi delle parti corpo dei messaggi BizTalk devono corrispondere ai nomi dei parametri dei metodi Web. Ad esempio, se la firma del servizio Web è WebMethod(MyType1 type1, MyType2 type2), il nome della parte deve essere type1 e type2, è possibile che venga visualizzato l'errore di runtime seguente:

Impossibile recuperare la parte del messaggio per il parametro %1

Per altre informazioni, vedere Come usare i servizi Web in uno scenario di sola messaggistica.

Configurazione di una porta di trasmissione SOAP a livello di codice

È possibile impostare le proprietà di configurazione a livello di codice nel contesto del messaggio. Tali proprietà possono essere impostate in un'orchestrazione o in un componente della pipeline personalizzato, indipendentemente dal fatto che la porta di trasmissione sia statica o dinamica.

Nota

Per configurare la proprietà MethodName per la porta di trasmissione SOAP statica a livello di codice, è necessario impostare Nome metodo su [Specificare più avanti] nella scheda Servizio Web della finestra di dialogo Proprietà trasporto SOAP nella console di amministrazione BizTalk Server.

Per altre informazioni sulla proprietà MethodName , vedere Come impostare dinamicamente l'URI di un servizio Web utilizzato.

Per altre informazioni sulla finestra di dialogo Proprietà trasporto SOAP , vedere la finestra di dialogo Proprietà trasporto SOAP, servizio Web nella guida per l'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori.

Regole per le proprietà

Se la proprietà di configurazione è impostata in un'orchestrazione o in un componente personalizzato di una pipeline di ricezione, verranno applicate le seguenti regole:

  • Se viene inviato un messaggio a una porta di trasmissione statica, il valore della proprietà verrà sovrascritto dal valore configurato per tale porta.

  • Se viene inviato un messaggio a una porta di trasmissione dinamica, il valore della proprietà non verrà sovrascritto.

    Se una proprietà di configurazione è impostata in un componente personalizzato di una pipeline di trasmissione, verrà applicata la seguente regola:

  • Il valore non verrà sovrascritto indipendentemente dal fatto che il messaggio venga inviato a una porta di trasmissione statica o dinamica. In altri termini, i componenti della pipeline di trasmissione sovrascrivono la proprietà di configurazione indipendentemente dalla posizione in cui è stata impostata.

  • Per altre informazioni sui componenti della pipeline personalizzati, vedere Sviluppo di componenti della pipeline personalizzati.

  • Per altre informazioni sulle proprietà di configurazione dell'adapter di trasmissione SOAP, vedere Come impostare dinamicamente l'URI di un servizio Web utilizzato.

L'aggiunta di un riferimento Web a un servizio Web utilizzato contenente uno schema con più directory principali causerà un errore di compilazione

Se al progetto per un servizio Web si aggiunge un riferimento Web derivato da un'orchestrazione BizTalk pubblicata e l'orchestrazione contiene uno schema con più directory principali, si verificherà un errore durante la compilazione del progetto. Se pertanto si aggiunge al progetto un riferimento Web derivato da un'orchestrazione BizTalk pubblicata, verificare che quest'ultima non contenga schemi con più directory principali.

Utilizzo di TypedDataSet come parametri per i metodi Web

Per supportare l'utilizzo di TypedDataSet come parametri per i metodi Web, è necessario effettuare le seguenti operazioni:

  1. Aggiungere il riferimento Web a un progetto C# e quindi generare il proxy.

  2. Creare una porta di trasmissione SOAP, specificare il proxy sulla porta di trasmissione e scegliere il metodo.

  3. Nell'orchestrazione definire una porta ad associazione tardiva e definire i tipi di messaggio. Per la maggior parte dei casi in cui non è necessario alcun accesso a campi distinti o promozione delle proprietà, il tipo può essere definito come XMLDocument. Selezionare pipeline PassThrough con questo tipo.

  4. In BizTalk Server console di amministrazione, nella scheda Servizio Web nella finestra di dialogo Proprietà trasporto SOAP della porta di trasmissione SOAP specificare che si vuole usare tale proxy creato. Sarà inoltre necessario specificare assembly, tipo e metodo. Per altre informazioni, vedere la finestra di dialogo Proprietà trasporto SOAP, scheda Servizio Web nella guida per l'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

L'aggiunta di un riferimento Web a un servizio Web utilizzato contenente un metodo Web che prevede parametri di tipo generico causerà un errore di compilazione

Se si aggiunge un riferimento Web al progetto per un servizio Web contenente un metodo Web che prevede parametri di tipo generico, quali ad esempio parametri che supportano il valore Null, si verificherà un errore durante la compilazione del progetto. Questo non è supportato. È necessario utilizzare la specializzazione esplicita per chiamare la classe generica da XLANG/s.

Generazione di schemi BizTalk con Aggiungi riferimento al servizio

Quando si usa Il riferimento al servizio per aggiungere riferimenti al servizio ai progetti BizTalk, BizTalk Server converte i tipi di schema necessari per chiamare ogni metodo Web negli schemi. BizTalk Server aggiunge questi schemi a Reference.xsd. Per assicurarsi che il riferimento al servizio di aggiunta generi correttamente gli schemi BizTalk, i servizi Web devono essere conformi alle linee guida seguenti:

  • I metodi Web devono avere SoapDocumentMethodAttribute anziché SoapRpcMethodAttribute.

  • I servizi Web e i metodi devono usare l'associazione letterale anziché codificata , ad esempio [SoapDocumentMethod(Use=SoapBindingUse.Literal)].

  • I parametri del metodo Web e i tipi restituiti devono avere XmlRootAttribute con una proprietà Namespace valida, a meno che non siano tipi XSD nativi e il tipo XmlNode.

  • I metodi Web non devono usare le proprietà RequestNamespace e ResponseNamespace in SoapDocumentMethodAttribute.

  • I servizi Web devono essere conformi a Profilo base WSI (Web Services Interoperability) versione 1.1.

Il codice XSD non conterrà nodi per tipi di parametro semplici

Quando si aggiunge un riferimento Web e il metodo Web dispone di un parametro di tipo semplice, il codice XSD generato non conterrà nodi per tale parametro. Il messaggio in più parti che viene generato conterrà invece una parte che è di tipo semplice. L'orchestrazione deve gestire questa parte del messaggio in modo appropriato. Se si tratta di una parte della richiesta inviata al servizio Web, assegnare manualmente il valore a tale parte con una forma di assegnazione messaggio. Se è una parte della risposta proveniente dal servizio Web, accedere manualmente a tale parte in una forma espressione per visualizzarne il valore.

Aggiungi riferimento al servizio non supporta l'elemento import WSDL (Web Services Description Language)

Aggiungi riferimento al servizio ha esito negativo quando si aggiungono riferimenti a servizi per il file WSDL con l'elemento import.

Vedere anche

Costruzione di messaggi Web