Help and Support

Creazione di un progetto di installazione per un servizio Windows in Visual Basic .NET o in Visual Basic 2005

Identificativo articolo:317421
Ultima modifica:mercoledì 6 febbraio 2008
Revisione:8.6
Per la versione di questo articolo relativa a Microsoft Visual C# .NET, vedere 816169 (http://support.microsoft.com/kb/816169/).
Su questa pagina

Sommario

In questo articolo viene descritto come creare un progetto di installazione per un'applicazione di servizio Windows (precedentemente noto come servizio NT). A questo scopo è necessario creare prima una soluzione contenente un progetto semplice di servizio Windows. Tale progetto scrive una voce nel registro Applicazione. Successivamente si aggiunge un progetto di installazione alla soluzione per installare il servizio Windows. Infine si avvia il servizio da Esplora server di Visual Studio .NET.

Torna all'inizio

Requisiti

Nell'elenco che segue sono indicati l'hardware, il software, l'infrastruttura di rete e i service pack necessari:
?Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Professional o Microsoft Windows XP Server con Microsoft .NET Framework
?Microsoft Visual Studio .NET Enterprise Edition, Visual Studio .NET Enterprise Architect Edition o Microsoft Visual Studio 2005
In questo articolo viene presupposto che l'utente abbia familiarità con i servizi Windows. In caso contrario, vedere la prima voce della sezione "Riferimenti".

In questo articolo viene inoltre presupposto che l'account utente utilizzato per installare ed eseguire questo servizio disponga delle necessarie autorizzazioni per installare e avviare servizi. L'account utente deve altresì disporre delle autorizzazioni necessarie per accedere al registro eventi.

Torna all'inizio

Creazione di un progetto di installazione per un servizio Windows

In questa sezione viene descritto come creare un progetto di servizio Windows e come utilizzare un progetto di installazione compilato per installare il servizio Windows.

Creazione di un progetto di servizio Windows

1.Fare clic sul pulsante Start, scegliere Programmi, Microsoft Visual Studio .NET o Microsoft Visual Studio 2005, quindi Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
2.Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
3.Nella finestra di dialogo Nuovo progetto attenersi alla seguente procedura:
a. In Tipi progetto fare clic su Progetti di Visual Basic o su Windows in Visual Basic.
b. In Modelli fare clic su Servizio Windows.
c. Nella casella Nome digitare LogWriterService.
d. Nella casella Percorso digitare C:\, quindi scegliere OK.
4.In Esplora soluzioni fare clic con il pulsante destro del mouse su Service1.vb, quindi scegliere Visualizza codice.
5.Nel gestore eventi OnStart sostituire i commenti con il codice seguente.
EventLog.WriteEntry("My simple service started.")
6.In Esplora soluzioni fare doppio clic su Service1.vb.
7.Nella finestra di dialogo Proprietà scegliere Aggiungi programma di installazione.
8.Nella finestra di dialogo Proprietà di ServiceInstaller1 modificare la proprietà ServiceName impostandola su LogWriterService.
9.In visualizzazione Struttura, fare clic su ServiceProcessInstaller1 nell'editor del codice.
10.Nella finestra di dialogo Proprietà modificare la proprietà Account impostandola su LocalSystem. I valori LocalService e NetworkService sono disponibili solo in Microsoft Windows XP e sistemi operativi successivi.

Utilizzo di un progetto di installazione compilato per installare il servizio Windows

Al termine della procedura descritta nella sezione "Creazione di un progetto di servizio Windows" finalizzata alla configurazione del progetto di servizio Windows, è possibile aggiungere un progetto di distribuzione che crei il pacchetto dell'applicazione del servizio in modo che possa essere installata. Per effettuare questa operazione, attenersi alla seguente procedura:
1.Aggiungere un nuovo progetto al progetto LogWriterService.
a. In Esplora soluzioni fare clic con il pulsante destro del mouse su Soluzione LogWriterService, scegliere Aggiungi, quindi Nuovo progetto.
b. In Tipi progetto fare clic su Progetti di installazione e distribuzione o Installazione e distribuzione.
c. In Modelli fare clic su Progetto di installazione.
d. Nella casella Nome digitare ServiceSetup.
e. Nella casella Percorso digitare C:\, quindi scegliere OK.
2.Indicare al progetto di distribuzione il pacchetto da utilizzare.
a. In Esplora soluzioni fare clic con il pulsante destro del mouse su ServiceSetup, scegliere Aggiungi, quindi Output progetto.
b. Nella finestra di dialogo Aggiungi gruppo output progetto, fare clic su LogWriterService nella casella Progetto.
c. Fare clic su Output primario, quindi scegliere OK.
3.Per una corretta installazione è necessario aggiungere solo l'output primario. Per aggiungere le azioni personalizzate, attenersi alla seguente procedura:
a. In Esplora soluzioni fare clic con il pulsante destro del mouse su ServiceSetup, scegliere Visualizza, quindi Azioni personalizzate.
b. Fare clic con il pulsante destro del mouse su Azioni personalizzate, quindi scegliere Aggiungi azione personalizzata.
c. Fare clic su Cartella Applicazione e scegliere OK.
d. Fare clic sulla voce relativa all'output primario di LogWriterService (attivo), quindi scegliere OK. Notare che Output primario viene visualizzato nella sezione relativa all'installazione, al commit, al rollback e alla disinstallazione.
4.Per impostazione predefinita i progetti di installazione non sono inclusi nella configurazione di compilazione. Per compilare la soluzione, attenersi alla seguente procedura:
a. Utilizzare uno dei seguenti metodi:
?Fare clic con il pulsante destro del mouse su LogWriterService e scegliere Genera. Fare quindi clic con il pulsante destro del mouse su ServiceSetup e scegliere Genera.
?Per compilare l'intera soluzione contemporaneamente, scegliere Gestione configurazione dal menu Genera, quindi selezionare la casella di controllo Genera per ServiceSetup.
b. Premere CTRL+Maiusc+B per compilare l'intera soluzione. Una volta compilata la soluzione, si disporrà del pacchetto completo di installazione del servizio.
5.Per installare il servizio, fare clic con il pulsante destro del mouse su ServiceSetup, quindi scegliere Installa.
6.Nella finestra di dialogo ServiceSetup scegliere tre volte Avanti. Notare che durante l'installazione del servizio viene visualizzato un indicatore di stato.
7.Al termine dell'installazione del servizio scegliere Chiudi.

Torna all'inizio

Listato completo del codice (Service1.vb)

Imports System.ServiceProcess

Public Class Service1
    Inherits System.ServiceProcess.ServiceBase

#Region " Component Designer generated code "

    Public Sub New()
        MyBase.New()

        ' The Component Designer requires this call.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

    End Sub

    'UserService overrides Dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' This is the main entry point for the process.
    <MTAThread()> _
    Shared Sub Main()
        Dim ServicesToRun() As System.ServiceProcess.ServiceBase

        ' More than one NT Service may run within the same process. To add
        ' another service to this process, change the following line of 
        ' code to create a second service object. For example,
        '
        'ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
        '
        ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1}

        System.ServiceProcess.ServiceBase.Run(ServicesToRun)
    End Sub

    'The Component Designer requires this code.
    Private components As System.ComponentModel.IContainer

    ' NOTE: The Component Designer requires the following procedure.
    ' You can use the Component Designer to modify the procedure.
    ' However, do not modify use the code editor to modify it.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.ServiceName = "Service1"
    End Sub

#End Region

    Protected Overrides Sub OnStart(ByVal args() As String)
        EventLog.WriteEntry("My simple service started.")
    End Sub

    Protected Overrides Sub OnStop()

    End Sub

End Class

Torna all'inizio

Verifica del funzionamento del servizio Windows

1.Fare clic sul pulsante Start, scegliere Pannello di controllo, Strumenti di amministrazione e infine Servizi.
2.Fare clic con il pulsante destro del mouse su Service1, quindi scegliere Avvia.
3.Per verificare che nel registro eventi sia presente un evento, utilizzare uno dei metodi seguenti:
?Fare clic sul pulsante Start, scegliere Pannello di controllo, Strumenti di amministrazione e infine Visualizzatore eventi. Nel riquadro sinistro fare clic su Applicazione. Nel riquadro destro individuare la voce di evento relativa al servizio.
?In Esplora server espandere Server, NomeComputer, Registri eventi, Applicazione, quindi Service1. Service1 è il nome della classe, non quello del servizio. Pertanto Service1 viene utilizzato come nome dell'applicazione. Esula dall'ambito del presente articolo descrivere la modalità di personalizzazione dei nomi. Spostare il cursore tra le voci del registro. La seconda voce dall'inizio è la seguente:

My simple service started

Torna all'inizio

Risoluzione dei problemi

Nella documentazione dell'SDK per .NET Framework è asserito quanto segue:
Il file eseguibile compilato creato da un progetto di applicazione di servizio deve essere installato sul server affinché il progetto possa funzionare correttamente. Non è possibile eseguire il debug di un'applicazione di servizio o eseguirla premendo F5 o F11; non è possibile eseguire immediatamente un servizio o accedere al relativo codice. Piuttosto è necessario installare e avviare il servizio e poi collegare un debugger al processo del servizio.
Per ulteriori informazioni, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn.microsoft.com/library/en-us/vbcon/html/vbtskdebuggingserviceapplications.asp (http://msdn.microsoft.com/library/en-us/vbcon/html/vbtskdebuggingserviceapplications.asp)

Torna all'inizio

Riferimenti

Per informazioni su come creare un servizio Windows utile che mostri come installare e testare il servizio nonché come eseguirne il debug, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx)
Per ulteriori informazioni, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn.microsoft.com/msdnmag/issues/01/12/NETServ/default.aspx (http://msdn.microsoft.com/msdnmag/issues/01/12/NETServ/default.aspx)

Torna all'inizio


Le informazioni in questo articolo si applicano a
?Microsoft Visual Basic 2005
?Microsoft Visual Basic .NET 2003 Standard Edition
?Microsoft Visual Basic .NET 2002 Standard Edition

Torna all'inizio

Chiavi: 
kbhowtomaster kbvs2005applies kbvs2005swept KB317421

Torna all'inizio

LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Traduzione articoli

 

Other Support Options

  • Contact Microsoft
    Phone Numbers, Support Options and Pricing, Online Help, and more.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.