Procedura dettagliata: creazione e utilizzo di un servizio Web ASP.NET in Visual Web Developer

Aggiornamento: novembre 2007

Oltre alla creazione di pagine Web, Microsoft Visual Studio consente anche di creare servizi Web che utilizzano ASP.NET XML. La creazione di un servizio in Visual Studio è simile alla creazione di una pagina Web. È inoltre possibile utilizzare lo strumento di sviluppo Web Microsoft Visual Web Developer, di riferimento e di utilizzo dei servizi Web presenti in una soluzione Visual Web Developer, nel computer locale oppure in una directory UDDI locale o esterna. In questa procedura dettagliata sarà possibile creare il servizio Web in una soluzione e utilizzarlo in un'altra.

Di seguito sono elencate le attività illustrate nella procedura dettagliata:

  • Creazione di un servizio Web XML semplice in Visual Web Developer.

  • Creazione di un sito Web separato che utilizza il servizio Web.

Prerequisiti

Per completare questa procedura dettagliata è necessario:

  • Microsoft Internet Information Services (IIS) installato nel computer locale.

Creazione di un servizio Web nella directory principale di IIS.

Creare un sito e una pagina Web nuovi attenendosi alla seguente procedura.

Nota:

Per questa procedura dettagliata, è necessario utilizzare un sito Web IIS.

Per creare un servizio Web

  1. Aprire Visual Web Developer.

  2. Scegliere Nuovo sito Web dal menu File.

    Verrà visualizzata la finestra di dialogo Nuovo sito Web.

  3. In Modelli Visual Studio installati fare clic su Servizio Web ASP.NET.

  4. Scegliere Sfoglia.

  5. Fare clic su IIS locale.

  6. Fare clic su Sito Web predefinito.

  7. Fare clic su Crea nuova applicazione Web.

    In Visual Web Developer viene creata una nuova applicazione Web IIS.

  8. Digitare il nome TemperatureWebService.

  9. Scegliere Apri.

    Viene visualizzata la finestra di dialogo Nuovo sito Web con il nome del nuovo sito Web nell'elenco Percorso situato più a destra. Nel percorso sono inclusi il protocollo (http://) e il percorso (localhost). Quindi si utilizza un sito Web IIS locale.

  10. Nell'elenco Linguaggio scegliere il linguaggio di programmazione da utilizzare.

    Il linguaggio di programmazione scelto sarà quello predefinito per il sito Web. Tuttavia, è possibile utilizzare più di un linguaggio nella stessa applicazione Web creando pagine e componenti con diversi linguaggi di programmazione. Per ulteriori informazioni riguardo la creazione di componenti utilizzando diversi linguaggi, vedere Cartelle di codice condivise nei siti Web ASP.NET.

  11. Scegliere OK.

    In Visual Web Developer viene creato il nuovo servizio Web e aperta una nuova classe denominata Service che rappresenta l'impostazione predefinita del servizio Web. Tuttavia, nella procedura riportata di seguito verrà creato un nuovo servizio Web con un nome specificato senza utilizzare la classe Service.

  12. Chiudere la classe Service.

Creazione di un nuovo servizio Web

Il servizio Web creato consentirà di convertire la temperatura di gradi da Fahrenheit in Celsius e viceversa.

Per creare il servizio Web

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome del sito (https://localhost/TemperatureWebService), quindi scegliere Aggiungi nuovo elemento.

  2. In Modelli Visual Studio installati fare clic su Servizio Web, quindi digitare Convert nella casella Nome.

  3. Accertarsi che la casella di controllo Inserisci codice in file separato sia stata selezionata, quindi fare clic su Aggiungi.

    In Visual Web Developer viene creato un nuovo servizio Web che si compone di due file. Il file Convert.asmx è il file da richiamare per eseguire la chiamata ai metodi del servizio Web e scegliere il codice per il servizio Web. Il codice stesso è contenuto in un file di classe (Convert.vb, Convert.cs oppure Convert.jsl in base al linguaggio di programmazione) nella cartella App_Code. Nel file di codice è contenuto un modello per un servizio Web. Nel file di codice è incluso un codice per un metodo di servizio Web.

Sarà possibile creare due metodi nel servizio Web. Il primo metodo consente di convertire le temperature Fahrenheit in Celsius, mentre il secondo metodo consente di convertire le temperature Celsius in Fahrenheit.

Per creare i metodi di conversione

  1. Aggiungere il codice riportato di seguito nella classe, dopo il metodo HelloWorld:

        <System.Web.Services.WebMethod()> _
    Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _
            As Double
            Return ((Fahrenheit - 32) * 5) / 9
        End Function
    
        <System.Web.Services.WebMethod()> _
            Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _
                As Double
            Return ((Celsius * 9) / 5) + 32
        End Function
    
    [System.Web.Services.WebMethod()]
    public double FahrenheitToCelsius(double Fahrenheit)
    {
        return ((Fahrenheit - 32) * 5) / 9;
    }
    
    [System.Web.Services.WebMethod()]
    public double CelsiusToFahrenheit(double Celsius)
    {
        return ((Celsius * 9) / 5) + 32;
    }
    

    Si noti che i nomi della funzione sono preceduti da un attributo ([System.Web.Services.WebMethod()] oppure <System.Web.Services.WebMethod()>) come parte della dichiarazione di funzione.

  2. Dopo avere immesso le funzioni, salvare il file.

È ora possibile verificare il servizio Web in Visual Web Developer.

Per eseguire il test del servizio Web

  1. In Esplora soluzioni, fare clic su Convert.asmx, quindi premere CTRL+F5.

    Viene richiamato il servizio Web e viene visualizzata una pagina nel browser in cui sono illustrati i metodi esposti dal servizio Web.

  2. Fare clic su CelsiusToFahrenheit che richiama quel metodo.

    Viene visualizzata una pagina in cui sono richiesti i valori di parametro per il metodo CelsiusToFahrenheit.

  3. Digitare 100 nella casella Celsius, quindi fare clic su Richiama.

    Viene visualizzata una nuova finestra in cui è presente l'XML restituito dal servizio Web quando viene richiamato il metodo CelsiusToFahrenheit. Nell'XML viene visualizzato il valore di 212.

  4. Chiudere il browser in cui sono contenuti i risultati del metodo.

  5. Nel browser originale, fare clic su Indietro per restituire l'elenco di metodi.

  6. Fare clic su FahrenheitToCelsius ed eseguire il test per accertarsi che il metodo restituisca i risultati previsti.

    Se si digita 212, il metodo FahrenheitToCelsius restituirà 100.

  7. Chiudere il browser.

La creazione del servizio Web è stata completata. Nel passaggio successivo si procede al relativo utilizzo.

Utilizzo del servizio Web

Dopo aver creato un servizio Web, sarà possibile creare un sito Web in cui si farà riferimento e si utilizzerà il servizio Web creato. Per la procedura dettagliata, verrà creato un sito Web separato che dispone di una pagina in cui avviare i metodi del servizio Web creati.

Per creare un sito Web per utilizzare il servizio Web

  1. Scegliere Nuovo sito Web dal menu File.

  2. In Modelli Visual Studio installati, fare clic su Sito Web ASP.NET.

  3. Scegliere Sfoglia.

  4. Fare clic su IIS locale.

  5. Fare clic su Sito Web predefinito.

  6. Fare clic su Crea nuova applicazione Web.

    In Visual Web Developer viene creata una nuova applicazione Web IIS.

  7. Digitare il nome TemperatureWeb.

  8. Scegliere Apri.

  9. Nell'elenco Linguaggio scegliere il linguaggio di programmazione da utilizzare.

  10. Scegliere OK.

    In Visual Web Developer viene creato un nuovo sito Web IIS locale e una nuova pagina denominata Default.aspx.

Aggiunta del servizio Web come componente

Il servizio Web è un componente a cui è possibile fare riferimento nell'applicazione. Pertanto, è necessario creare un riferimento.

Per creare un riferimento al servizio Web

  1. Scegliere Aggiungiriferimento Web dal menu Sito Web.

    Vene visualizzata la finestra di dialogo Aggiungi riferimento Web, illustrata nell'immagine riportata di seguito.

    Finestra di dialogo Aggiungi riferimento Web

    Finestra di dialogo Aggiungi riferimento Web

  2. Nell'elenco URL, immettere l'URL riportato di seguito per il servizio Web, quindi fare clic su Vai:

    https://localhost/TemperatureWebService/Convert.asmx

    Quando in Visual Web Developer viene trovato il servizio Web, vengono visualizzate le informazioni sul servizio Web nella finestra di dialogo Aggiungi riferimento Web.

    Nota:

    Se non è possibile aggiungere un riferimento a un servizio Web, è probabile che il server proxy non sia configurato in modo corretto. In Microsoft Internet Explorer, scegliere Opzioni Internet dal menu Strumenti, fare clic su Connessioni, quindi scegliere Impostazioni LAN. Sezionare la casella di controllo Ignora server proxy per indirizzi locali. Inoltre, l'impostazione del server proxy consente di ottenere il nome esatto del server proxy invece di eliminarlo tramite Internet Explorer. Per ulteriori informazioni, contattare l'amministratore della rete.

  3. Fare clic su uno dei collegamenti di metodo.

    Viene visualizzata la pagina di prova per il metodo.

  4. Scegliere Aggiungi riferimento.

    In Visual Web Developer viene creata una cartella App_WebReferences a cui viene aggiunta una cartella per il nuovo riferimento Web. Per impostazione predefinita, ai riferimenti Web è assegnato uno spazio dei nomi che corrisponde al relativo nome server (in questo caso, localhost). Prendere nota del nome per lo spazio dei nomi del riferimento Web. Nella cartella, in Visual Web Developer viene aggiunto un file wsdl a cui fa riferimento il servizio Web. Vengono inoltre aggiunti file di supporto, ad esempio file di individuazione (disco e discomap), in cui sono incluse informazioni sulla collocazione del servizio Web.

    Nota:

    Se nel nome server per il servizio Web sono contenuti caratteri che non possono essere utilizzati per un nome di classe, ad esempio un trattino (-), in Visual Web Developer questi caratteri vengono convertiti in un carattere di sottolineatura (_). Pertanto, lo spazio dei nomi in Visual Web Developer per il servizio Web potrebbe non corrispondere in modo esatto al nome del server.

È ora possibile utilizzare il servizio Web. In questa procedura dettagliata, verranno aggiunti i controlli a Default.aspx e, successivamente, programmati per convertire una determinata temperatura da gradi Fahrenheit in Celsius e viceversa. L'aspetto della pagina in esecuzione sarà simile a quello illustrato di seguito.

Pagina di conversione delle temperature

Schermata VenusWebServicesWalkthroughConsumePage

Per chiamare i metodi del servizio Web

  1. Aprire la pagina Default.aspx e passare alla visualizzazione Progettazione.

  2. Dal gruppo Standard della Casella degli strumenti, trascinare i seguenti controlli nella pagina e impostare le relative proprietà come riportato di seguito:

    Controllo

    Proprietà

    Textbox

    ID: TemperatureTextbox

    Text: (vuoto)

    Button

    ID: ConvertButton

    Text: Convert

    Label

    ID: FahrenheitLabel

    Text: (vuoto)

    Label

    ID: CelsiusLabel

    Text: (vuoto)

  3. Facoltativamente, è possibile aggiungere un testo alla pagina per le didascalie.

    Per questa procedura dettagliata, il layout della pagina non è importante.

  4. Fare doppio clic su ConvertButton per creare un gestore eventi per il relativo evento Click.

  5. Accertarsi che il codice del gestore eventi corrisponda al codice dell'esempio riportato di seguito.

    Dim wsConvert As New localhost.Convert()
    Dim temperature As Double
    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    FahrenheitLabel.Text = "Fahrenheit To Celsius = " & _
        wsConvert.FahrenheitToCelsius(temperature).ToString()
    CelsiusLabel.Text = "Celsius To Fahrenheit = " & _
        wsConvert.CelsiusToFahrenheit(temperature).ToString()
    
    protected void ConvertButton_Click(object sender, EventArgs e)
    {
        localhost.Convert wsConvert = new localhost.Convert();
        double temperature =
            System.Convert.ToDouble(TemperatureTextbox.Text);
        FahrenheitLabel.Text = "Fahrenheit To Celsius = " +
            wsConvert.FahrenheitToCelsius(temperature).ToString();
        CelsiusLabel.Text = "Celsius To Fahrenheit = " +
            wsConvert.CelsiusToFahrenheit(temperature).ToString();
    }
    
  6. Premere CTRL+F5 per eseguire la pagina.

  7. Nella casella di testo digitare un valore, ad esempio 100, quindi fare clic su Converti.

    Nella pagina viene visualizzato il risultato della conversione del valore della temperatura in gradi Fahrenheit e Celsius.

Debug del servizio Web

È possibile eseguire il debug di un servizio Web nello stesso modo in cui si esegue il debug delle pagine Web.

Nota:

In Visual Web Developer Express Edition e Visual Studio Standard Edition non è supportata l'esecuzione di istruzioni in un servizio Web da una pagina che vi fa riferimento. In caso di utilizzo dell'edizione Visual Web Developer Express oppure dell'edizione Visual Studio Standard, ignorare questa sezione e le successive. Per ulteriori informazioni sul debug dei siti Web, vedere Procedura dettagliata: debug di pagine Web in Visual Web Developer.

Per iniziare, è necessario configurare in sito Web in cui è contenuto il servizio Web per consentire il debug.

Per consentire l'esecuzione del debug nel sito Web dei servizi Web

  1. Dal menu File, scegliere Apri sito Web.

  2. Fare clic su IIS locale.

  3. Fare clic su TemperatureWebService, quindi scegliere Apri.

  4. Dal menu Sito Web fare clic su Configurazione di ASP.NET per aprire lo Strumento di amministrazione sito Web.

    Nota:

    Se si tratta della prima esecuzione dello Strumento di amministrazione sito Web, potrebbe verificarsi un certo ritardo prima della relativa visualizzazione.

  5. Fare clic su Applicazione, quindi scegliere Configurazione di applicazione.

  6. In Debug e analisi fare clic su Configura debug e analisi.

  7. Selezionare la casella di controllo Attiva debug.

    Lo Strumento di amministrazione sito Web consente di creare un file Web.config per il sito Web e di impostare un'opzione di configurazione per attivare il debug.

    Nota:

    Per visualizzare il file Web.config in Esplora soluzioni, fare clic sul nome del sito Web e successivamente, nella barra degli strumenti di Esplora soluzioni, scegliere Aggiorna.

  8. Chiudere lo Strumento di amministrazione sito Web.

Infine, è necessario eseguire il debug del sito Web con cui è utilizzato il servizio Web.

Per attivare il debug nel sito Web

  1. Aprire il sito TemperatureWeb.

  2. Dal menu Sito Web fare clic su Configurazione di ASP.NET per aprire lo Strumento di amministrazione sito Web.

  3. Fare clic su Applicazione, scegliere Configurazione di applicazione, in Debug e analisi, fare clic su Configura debug e analisi, quindi selezionare la casella di controllo Attiva debug.

  4. Chiudere lo Strumento di amministrazione sito Web.

    Nota:

    Per visualizzare il file Web.config in Esplora soluzioni, selezionare il nome del sito Web e successivamente, nella barra degli strumenti di Esplora soluzioni, scegliere Aggiorna.

  5. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Default.aspx, quindi scegliere Visualizza codice.

    In Visual Web Developer viene aperto il file di codice per la pagina.

  6. Posizionare il puntatore nella seguente riga:

    temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
    
    double temperature =
        System.Convert.ToDouble(TemperatureTextbox.Text);
    
  7. Premere F9 per impostare un punto di interruzione sulla riga.

Test del debug

Sia il sito Web, sia il servizio Web sono configurati per il debug, quindi è possibile ritentare l'esecuzione del debug. Si avvia la pagina Default.aspx e si procede a scorrere il codice fino a richiamare il servizio Web. Il debugger passerà al servizio Web e continuerà a scorrere il codice.

Per eseguire il debug della pagina e del servizio Web

  1. Premere F5 per eseguire la pagina Default.aspx con il debug.

    La pagina viene visualizzata nel browser.

  2. Nella casella digitare un valore, ad esempio 100, quindi fare clic su Converti.

    In Visual Web Developer viene avviata l'esecuzione del codice per la pagina, ma si arresta e viene evidenziata la riga in cui è contenuto il punto di interruzione.

  3. Premere F11 per passare alla riga successiva.

  4. Premere di nuovo F11.

    Dal momento che nella riga successiva viene richiamato il servizio Web, il debugger passa nel servizio Web, arrestandosi nella prima riga del metodo FahrenheitToCelsius.

  5. Continuare a premere F11.

    Il debugger scorre il resto del metodo, quindi restituisce la pagina in cui si esegue la chiamata. Se si continua a scorrere, il debugger ritornerà al passaggio precedente nel servizio Web e nel metodo CelsiusToFahrenheit.

  6. Chiudere il browser che consente la chiusura del debugger.

Passaggi successivi

In questa procedura dettagliata sono stati illustrati i principi di base per la creazione di un servizio Web molto semplice e il relativo utilizzo in un'applicazione ASP.NET. È possibile provare a utilizzare ulteriori funzionalità, più complesse del servizio Web. Di seguito sono riportati alcuni suggerimenti per ulteriori esplorazioni:

Vedere anche

Attività

Procedura dettagliata: debug di pagine Web in Visual Web Developer

Concetti

Linee guida di progrettazione per servizi Web XML creati tramite ASP.NET

Protezione dei servizi Web XML creati tramite ASP.NET

Riferimenti

Direttiva @ WebService nei servizi Web XML

Altre risorse

Elemento <webServices>

Creare servizi Web XML mediante ASP.NET