Procedura dettagliata: creazione di un servizio Web mediante Visual Basic o Visual C#

Aggiornamento: novembre 2007

Nella procedura dettagliata riportata di seguito viene descritto il processo di creazione di un servizio Web che consente la conversione delle temperature misurate in Fahrenheit in valori Celsius mediante Visual Basic o Visual C#.

Nel corso di questa procedura si effettueranno le seguenti operazioni:

  • Creazione di un servizio Web mediante il modello di progetto Servizio Web ASP.NET.

  • Implementazione del servizio Web.

  • Esecuzione del servizio Web in modalità di debug.

  • Distribuzione del servizio Web.

Per completare la procedura dettagliata, è necessario accedere a un computer che soddisfi i requisiti necessari per la creazione di un progetto Web. Per ulteriori informazioni, vedere Procedura dettagliata: creazione e utilizzo di un servizio Web ASP.NET in Visual Web Developer.

Creazione di progetti di servizi Web

In Visual Studio è disponibile un modello di progetto di servizio Web ASP.NET che consente di creare servizi Web in Visual Basic e Visual C#.

Per creare un progetto di servizio Web ASP.NET

  1. Scegliere Nuovo sito Web dal menu File.

  2. Nella finestra di dialogo Nuovo sito Web fare clic sull'icona Servizio Web ASP.NET.

  3. Immettere l'indirizzo del server Web su cui verrà sviluppato il servizio Web e specificare il nome TempConvert1per la directory, ad esempio "http://MyServer/TempConvert1". Per impostazione predefinita, verrà utilizzato il computer locale per il progetto, ovvero "https://localhost".

    Nota

    Per alcuni tipi di progetto, la casella di testo Nome non è disponibile poiché il nome del progetto viene impostato specificando il percorso. Le applicazioni Web e i servizi Web si trovano, ad esempio, su un server Web e il loro nome deriva dalla directory virtuale specificata in tale server.

    Nota

    I servizi Web vengono sviluppati su un server di sviluppo. Per impostazione predefinita, il server di sviluppo corrisponde al computer locale. In genere, il progetto viene sviluppato e compilato su un server di sviluppo, quindi distribuito su un altro server, vale a dire il server di distribuzione, nel quale il servizio Web verrà gestito in un progetto di distribuzione. Tuttavia, se lo sviluppo viene eseguito direttamente sul server che ospita il servizio Web, il server di distribuzione e il server di sviluppo coincideranno.

  4. Scegliere OK per creare il progetto.

In Visual Studio verranno automaticamente creati i file necessari e forniti i riferimenti richiesti per il supporto di un servizio Web. Quando si crea un progetto di servizio Web in Visual Studio, viene visualizzata la finestra Progettazione componenti per Service1.asmx.

Implementazione del servizio Web

Il passaggio successivo consiste nella scrittura del codice per l'implementazione della funzionalità del servizio Web a cui avranno accesso i client. Nel caso dei servizi Web creati in Visual Studio, questo codice è incluso in un file nascosto di codice sottostante associato al file ASMX del servizio Web creato da Visual Studio. Per ulteriori informazioni, vedere Procedura: creare un metodo di servizio Web.

Per aggiungere un metodo di servizio Web

  1. Nel file di codice Service.vb, individuare il codice per la dichiarazione della classe Service. Sostituire il codice di attributo System.Web.Services.WebService con il seguente codice (visualizzato in grassetto) prima della dichiarazione di classe:

    <System.Web.Services.WebService( _
       Namespace:="http://Walkthrough/XmlWebServices/", _
       Description:="A temperature conversion service.")> _
    Public Class Service
    
    [System.Web.Services.WebService(
       Namespace="http://Walkthrough/XmlWebServices/",
       Description="A temperature conversion service.")]
    public class Service : System.Web.Services.WebService
    

    Collegando l'attributo WebService a una classe Public è possibile inserire altre informazioni relative al servizio Web, ad esempio uno spazio dei nomi e una descrizione per il servizio Web. La proprietà Description dell'attributo è inclusa nella pagina della Guida relativa al servizio. Per ulteriori informazioni, vedere Procedura: utilizzare l'attributo WebService.

  2. Nella classe Service, dichiarare la funzione ConvertTemperature aggiungendo il codice seguente:

    <WebMethod(Description:="This method converts a temperature in " & _
           "degrees Fahrenheit to a temperature in degrees Celsius.")> _
    Public Function ConvertTemperature(ByVal dFahrenheit As Double) _
                                       As Double
        Return ((dFahrenheit - 32) * 5) / 9
    End Function
    
    [WebMethod(Description="This method converts a temperature in " +
           "degrees Fahrenheit to a temperature in degrees Celsius.")]
    public double ConvertTemperature(double dFahrenheit)
    {
       return ((dFahrenheit - 32) * 5) / 9;
    } 
    

    Se si collega l'attributo WebMethod a un metodo Public, quest'ultimo verrà esposto come parte del servizio Web. La proprietà Description dell'attributo è inclusa nelle pagine della Guida relative al servizio e al metodo del servizio. Per ulteriori informazioni, vedere Procedura: utilizzare l'attributo WebMethod.

  3. Fare clic con il pulsante destro del mouse su Service.asmx in Esplora soluzioni, quindi scegliere Imposta come pagina iniziale dal menu di scelta rapida.

  4. Salvare la soluzione.

Debug del servizio Web

In Visual Studio sono disponibili diversi metodi per la compilazione e l'esecuzione di un servizio Web dall'IDE, quali:

  • Avvio con debug

  • Avvia senza eseguire debug

  • Visualizza nel browser

Trattandosi di un progetto di Visual Studio, questo servizio Web presenta configurazioni diverse per le versioni Release e Debug. Poiché il progetto è stato creato mediante il modello di progetto del servizio Web ASP.NET, in Visual Studio vengono automaticamente create le configurazioni e impostate le opzioni predefinite e altri valori. Per ulteriori informazioni, vedere Procedura: impostare le configurazioni di debug e rilascio.

Nel corso della presente procedura dettagliata si inserirà un punto di interruzione nel servizio Web e si utilizzerà il metodo di avvio con debug. Per ulteriori informazioni, vedere Procedura: eseguire il debug di servizi Web in codice gestito.

Prima di effettuare il debug, occorre verificare le relative impostazioni. Per ulteriori informazioni, vedere Preparazione al debug: progetti di servizi Web XML.

Per utilizzare un punto di interruzione e avviare il servizio Web con il debug

  1. Scegliere Nuovo punto di interruzione nel menu Debug, quindi scegliere Interrompi alla funzione.

    Nella scheda Funzione, digitare ConvertTemperature nella casella Funzione, quindi scegliere OK per aggiungere un punto di interruzione nella dichiarazione del metodo ConvertTemperature.

  2. Scegliere Avvia nel menu Debug, quindi scegliere Ok nella finestra Debug non attivato per avviare il debug.

    Utilizzando questo comando, in Visual Studio verrà avviata l'esecuzione del servizio Web nel debugger. Il progetto verrà compilato e distribuito al server di sviluppo designato. Al termine delle operazioni, nel browser predefinito verrà visualizzato il file ASMX presente sul server di distribuzione.

    Quando viene aperto un file ASMX in un browser, viene restituita una pagina di supporto del servizio contenente informazioni relative al servizio Web. Il collegamento Descrizione servizio consente di accedere a un documento XML in cui è contenuta la descrizione formale del servizio Web. Per ulteriori informazioni, vedere Descrizione del servizio Web XML.

  3. Fare clic sul collegamento ConvertTemperature nella pagina di supporto del servizio.

  4. Digitare il numero 212 nella casella dFahrenheit, quindi scegliere il pulsante Richiama.

    Una volta raggiunta la funzione ConvertTemperature, l'elaborazione viene interrotta. Nel debugger di Visual Studio viene evidenziata la riga contenente il punto di interruzione e, durante l'interruzione, sarà possibile eseguire diverse attività. Per ulteriori informazioni, vedere Guida di orientamento al debugger e Visualizzazione di dati nel debugger.

  5. Scegliere Continua dal menu Debug per continuare l'elaborazione.

  6. La risposta del servizio Web consisterà nella restituzione del valore convertito in un documento XML simile al seguente:

    <?xml version="1.0" encoding="utf-8" ?>
    <double xmlns="http://Walkthrough/XmlWebServices/">100</double>
    

    Per arrestare l'esecuzione del servizio Web e tornare all'editor di codice, scegliere Termina debug dal menu Debug.

  7. Scegliere Elimina tutti i punti di interruzione dal menu Debug.

Distribuzione del servizio Web

Perché il servizio Web sia disponibile, è necessario distribuirlo a un server Web a cui possano accedere i client che si desidera supportare. Per distribuire il servizio Web a un server diverso da quello di sviluppo, è possibile aggiungere un progetto di installazione Web o copiare i file necessari sul server di destinazione. Nella presente procedura dettagliata è possibile scegliere la modalità di distribuzione del servizio Web. Per ulteriori informazioni, vedere Procedura: distribuire servizi Web in codice gestito.

Per distribuire il servizio Web utilizzando un progetto di installazione Web

  1. Scegliere Aggiungi dal menu File, quindi fare clic su Nuovo progetto.

  2. Selezionare il nodo Altro, quindi il nodo Progetti di installazione e distribuzione e scegliere Progetto di installazione Web.

  3. Digitare TempConvert1WebSetup nella casella Nome, quindi scegliere OK.

    Nota

    Per impostazione predefinita, viene utilizzato il nome del progetto di distribuzione quando viene creata la directory virtuale sul server di distribuzione.

  4. Nel riquadro di sinistra dell'Editor del file system scegliere Cartella Applicazione Web. Per ulteriori informazioni, vedere Editor del file system.

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse su TempConvert1WebSetup, scegliere Aggiungi, quindi Output progetto.

  6. Nella finestra di dialogo Aggiungi gruppo output progetto selezionare File di dati. Per ulteriori informazioni, vedere Procedura: aggiungere e rimuovere output di progetto con l'Editor del file system.

  7. Scegliere OK.

  8. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto TempConvert1WebSetup e scegliere Compila dal menu di scelta rapida.

    Verrà creato un file di Windows Installer nella directory locale del progetto. Eseguendo il file verrà installata l'applicazione Web.

Per distribuire il servizio Web copiando il progetto

  1. In Esplora soluzioni selezionare il progetto TempConvert1.

  2. Scegliere Copia sito Web dal menu Progetto.

  3. Fare clic sull'icona accanto alla casella a discesa Connetti a per visualizzare la finestra di dialogo Apri sito Web. Visualizzare la directory in cui si desidera copiare il progetto.

  4. Selezionare i file da copiare nel riquadro Sito Web di origine e spostarli nel riquadro Sito Web remoto facendo clic sull'icona a forma di freccia rivolta verso destra. .

  5. Fare clic su Copia sito Web per copiare il sito Web.

Infine, per creare un'applicazione client con cui sia possibile accedere al servizio Web, vedere una delle seguenti procedure dettagliate:

Vedere anche

Altre risorse

Procedure dettagliate relative alla creazione e all'accesso a servizi Web

Procedure dettagliate di Visual Studio

Programmazione di siti Web con i servizi Web

Creazione di servizi Web in codice gestito