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.
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.
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.
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
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:
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):
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):
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.
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.