Procedura dettagliata: accesso a un servizio Web mediante Visual Basic o Visual C#

Aggiornamento: novembre 2007

Nella procedura dettagliata riportata di seguito viene descritto il processo di accesso a un servizio Web da un'applicazione creata con Visual Basic o Visual C#.

Nel corso di questa procedura si effettueranno le seguenti operazioni:

  • Creazione di un'applicazione client mediante il modello di progetto di un'applicazione Web ASP.NET.

  • Aggiunta di un riferimento Web a un servizio Web.

  • Scrittura del codice di accesso al servizio Web.

  • Esecuzione dell'applicazione Web in modalità di debug.

  • Distribuzione dell'applicazione Web.

Per completare la procedura dettagliata, è necessario disporre di quanto segue:

  • Poiché nella procedura dettagliata in corso viene utilizzata un'applicazione Web per accedere a un servizio Web, è necessario disporre di un computer che soddisfi i requisiti necessari per la creazione di un progetto Web. È inoltre necessario disporre di autorizzazioni sufficienti per creare progetti di servizi Web sul computer in cui si trova il server Web.

  • Un servizio Web creato con la seguente procedura dettagliata:

Creazione di un progetto client di servizio Web

In questa procedura dettagliata si procederà alla creazione di una semplice applicazione Web che consenta di accedere al servizio Web TempConvert1, nome assegnato al servizio Web creato in Procedura dettagliata: creazione di un servizio Web mediante Visual Basic o Visual C#.

Nota

Se si è modificato il nome del servizio Web di conversione delle temperature al momento della creazione, è sufficiente sostituire i nomi appropriati nei punti della procedura dettagliata in cui viene visualizzato il nome TempConvert1.

Per creare un'applicazione Web ASP.NET

  1. Scegliere Nuovo sito Web dal menu File.

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

  3. Immettere l'indirizzo del server Web su cui verrà sviluppata l'applicazione Web e specificare il nome TempConvertClient1 per la directory, ad esempio "http://MyServer/TempConvertClient1". 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

    Le applicazioni Web vengono sviluppate 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, su cui l'applicazione Web verrà gestita in un progetto di distribuzione. Tuttavia, se lo sviluppo viene eseguito direttamente sul server in cui si trova l'applicazione Web, il server di distribuzione e il server di sviluppo coincideranno.

  4. Scegliere OK per creare il progetto.

  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file Default.aspx e quindi scegliere Visualizza finestra di progettazione per aprire la finestra di progettazione.

  6. Dalla scheda Web Form della Casella degli strumenti trascinare una Casella di testo, un'Etichetta e un Pulsante nell'area di progettazione di Default.aspx, quindi disporre tali elementi nel modo desiderato.

  7. Fare clic con il pulsante destro del mouse sul pulsante aggiunto, Button1, quindi scegliere Proprietà nel menu di scelta rapida. Nella finestra Proprietà impostare la proprietà Text su Convert.

  8. Fare clic con il pulsante destro del mouse sull'etichetta aggiunta, Label1, quindi scegliere Proprietà nel menu di scelta rapida. Nella finestra Proprietà disattivare la proprietà Text per ottenere un'etichetta vuota.

Aggiunta di un riferimento Web

Per individuazione di un servizio Web si intende il processo con cui si rileva un servizio Web e si ottiene la relativa descrizione mediante un client. Il processo di individuazione di un servizio Web in Visual Studio prevede la ricerca di un sito Web in base a un algoritmo prestabilito. L'obiettivo del processo consiste nel rilevare la descrizione del servizio, che corrisponde a un documento XML in cui viene utilizzato il linguaggio di descrizione dei servizi Web (WSDL, Web Services Description Language). Per ulteriori informazioni, vedere la classe Individuazione di servizi Web XML.

Nella descrizione del servizio vengono fornite informazioni sui servizi disponibili e su come interagire con questi ultimi. In assenza di una descrizione del servizio, non è possibile interagire con un servizio Web a livello di codice. Per ulteriori informazioni, vedere la classe Descrizione del servizio Web XML.

È necessario uno strumento che consenta all'applicazione di comunicare con il servizio Web e di individuarlo in fase di esecuzione. L'aggiunta al progetto di un riferimento Web per il servizio Web assolve a questo compito generando una classe proxy che funge da interfaccia con il servizio Web ne fornisce una rappresentazione locale. Per ulteriori informazioni, vedere°Riferimenti Web in Visual Studio e Procedura: generare un proxy di servizio Web.

Per aggiungere un riferimento Web

  1. Scegliere Aggiungi riferimento Web dal menu Sito Web.

  2. Nella casella URL della finestra di dialogo Aggiungi riferimento Web digitare l'URL per ottenere la descrizione del servizio Web a cui si desidera accedere, ad esempio https://localhost/TempConvert1/Service1.asmx. Quindi fare clic sul pulsante Vai per recuperare le informazioni sul servizio Web.

    In alternativa

    Se il servizio Web è presente nel computer locale, fare clic sul collegamento Servizi Web sul computer locale nel riquadro del browser. Scegliere quindi il collegamento del servizio Web TempConvert1 dall'elenco visualizzato per recuperare le informazioni sul servizio Web.

  3. Nella casella Nome riferimento Web rinominare il riferimento Web in ConvertSvc, che corrisponde allo spazio dei nomi che verrà utilizzato per il riferimento Web.

  4. Scegliere Aggiungi riferimento per aggiungere un riferimento Web al servizio Web di destinazione. Per ulteriori informazioni, vedere la classe Procedura: aggiungere e rimuovere riferimenti Web.

    In Visual Studio verrà scaricata la descrizione del servizio e verrà generata una classe proxy per l'interfaccia presente tra l'applicazione e il servizio Web.

Accesso al servizio Web

Una volta aggiunto al progetto un riferimento al servizio Web, il passaggio successivo consiste nella creazione di un'istanza della classe proxy del servizio Web. Sarà quindi possibile accedere ai metodi del servizio Web utilizzando la stessa procedura di accesso ai metodi di oggetti, ovvero chiamando i metodi nella classe proxy. Quando vengono chiamati tali metodi, le comunicazioni tra l'applicazione e il servizio Web saranno gestite con il codice della classe proxy generato da Visual Studio.

Innanzitutto, si creerà un'istanza della classe proxy del servizio Web. Successivamente, con il valore specificato in TextBox1 verrà effettuata una chiamata al metodo ConvertTemperature del servizio Web mediante la classe proxy. A questo punto, verrà visualizzato il valore restituito dal servizio Web in Label1.

Per accedere al servizio Web

  1. Fare doppio clic sul pulsante Converti in WebForm1.aspx per creare un metodo di gestione degli eventi per il pulsante e visualizzare il file di codice sottostante.

  2. Immettere il codice riportato di seguito.

    ' Visual Basic
    Protected Sub Button1_Click(ByVal sender As Object, _
      ByVal e as EventArgs) Handles Button1.Click
        Dim ws As New ConvertSvc.Service
        Dim dFahrenheit As Double
        Dim dCelsius As Double
        Try
            dFahrenheit = Convert.ToDouble(TextBox1.Text)
            dCelsius = ws.ConvertTemperature(dFahrenheit)
            Label1.Text = dCelsius.ToString()
        Catch
            Label1.Text = "Conversion failed."
        End Try
    End Sub
    
    // C#
    protected void Button1_Click (System.Object sender, System.EventArgs e)
    {
       try
       {
          ConvertSvc.Service1 ws = new ConvertSvc.Service1();
          double dFahrenheit = Convert.ToDouble(TextBox1.Text);
          double dCelsius = ws.ConvertTemperature(dFahrenheit);
          Label1.Text = dCelsius.ToString();
       }
       catch
       {
          Label1.Text = "Conversion failed.";
       }
    }
    

    Nota

    È possibile che il nome della classe del servizio Web generato all'aggiunta di un riferimento Web sia diverso da quello visualizzato precedentemente come Service1.

  3. Selezionare Default.aspx in Esplora soluzioni.

  4. Scegliere Imposta come pagina iniziale dal menu Sito Web.

  5. Salvare la soluzione.

Per ulteriori informazioni, vedere la classe Procedura: accedere a un servizio Web in codice gestito.

Debug del client di servizio Web

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

  • Avvio con debug

  • Avvio senza debug

  • Visualizza nel browser

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

Nel corso della presente procedura dettagliata viene inserito un punto di interruzione nell'evento Button1_Click e viene utilizzato il metodo di avvio con debug. Per ulteriori informazioni, vedere la classe Procedura: eseguire il debug di servizi Web in codice gestito.

Prima di effettuare il debug, occorre verificare le relative impostazioni. Per ulteriori informazioni, vedere la classe Preparazione al debug: applicazioni Web ASP.NET.

Per utilizzare un punto di interruzione e avviare l'applicazione Web con il debug

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

    Per inserire un punto di interruzione nel gestore eventi Button1_Click, digitare Button1_Click nella casella Function, quindi scegliere OK. Per ulteriori informazioni, vedere Cenni preliminari sui punti di interruzione.

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

    Con questo comando è richiesta l'esecuzione dell'applicazione Web nel debugger. Il progetto verrà compilato e distribuito al server di sviluppo designato. Al termine delle operazioni, nel browser predefinito viene avviato e visualizzato il file ASPX presente sul server di distribuzione.

  3. Una volta visualizzata la pagina nel browser, digitare il numero 212 nella casella di testo, quindi fare clic sul pulsante Converti.

    L'elaborazione terminerà una volta raggiunto il gestore eventi Button1_Click. 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.

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

  5. La risposta del servizio Web consisterà nella restituzione del valore convertito mentre il testo di Label1 verrà impostato su 100.

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

  6. Scegliere Rimuovi punti di interruzione dal menu Debug.

Distribuzione del client

Perché l'applicazione Web sia disponibile, è necessario distribuirla a un server Web a cui possano accedere i client che si desidera supportare. Per distribuire l'applicazione Web su un server diverso da quello di sviluppo, è possibile aggiungere un progetto di installazione Web o copiare i file richiesti sul server di destinazione. Nella presente procedura dettagliata è possibile scegliere la modalità di distribuzione dell'applicazione Web. Per ulteriori informazioni, vedere la classe Distribuzione di applicazioni e componenti.

Per distribuire l'applicazione Web mediante un progetto di installazione Web

  1. Scegliere Aggiungi dal menu File, quindi New Progetto.

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

  3. Digitare TempConvertClient1WebSetup 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 la classe Editor del file system.

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

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

    • Il gruppo File di dati è composto dagli altri file dell'applicazione Web, ad esempio WebForm1.aspx e Web.config.
  7. Scegliere OK.

  8. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto TempConvertClient1WebSetup 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 l'applicazione Web copiando il progetto

  1. In Esplora soluzioni selezionare il progetto TempConvertClient1.

  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.

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