ServiceProcessInstaller Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Olyan végrehajtható osztályokat tartalmazó végrehajtható elemet telepít, amely kiterjed ServiceBase. Ezt az osztályt a telepítési segédprogramok, például a InstallUtil.exehívják meg egy szolgáltatásalkalmazás telepítésekor.
public ref class ServiceProcessInstaller : System::Configuration::Install::ComponentInstaller
public class ServiceProcessInstaller : System.Configuration.Install.ComponentInstaller
type ServiceProcessInstaller = class
inherit ComponentInstaller
Public Class ServiceProcessInstaller
Inherits ComponentInstaller
- Öröklődés
Példák
Az alábbi példa létrehoz egy MyProjectInstaller nevű projekttelepítőt, amely a következőtől Installeröröklődik: Feltételezzük, hogy van egy végrehajtható szolgáltatás, amely két szolgáltatást tartalmaz: "Hello-World Service 1" és "Hello-World Service 2". A MyProjectInstaller konstruktorán belül (amelyet a telepítési segédprogram hívna meg) ServiceInstaller az objektumok minden szolgáltatáshoz létrejönnek, és létrejön egy ServiceProcessInstaller a végrehajtható példányhoz. Ahhoz, hogy a telepítő segédprogram felismerje a MyProjectInstallert érvényes telepítőként, az attribútum a RunInstallerAttribute következőre truevan állítva: .
Az opcionális tulajdonságok a folyamattelepítőn és a szolgáltatástelepítőn vannak beállítva, mielőtt a telepítők hozzá lettek adva a Installers gyűjteményhez. Amikor a telepítő segédprogram hozzáfér a MyProjectInstallerhez, a gyűjteményhez Installers egy hívással InstallerCollection.Add hozzáadott objektumok is telepítve lesznek. A folyamat során a telepítő állapotinformációkat tart fenn, amelyek jelzik, hogy mely objektumok lettek telepítve, így minden objektumról biztonsági másolatot készíthet a telepítés sikertelensége esetén.
Általában nem példányosítaná a projekttelepítő osztályt explicit módon. Létrehozná, és hozzáadná a RunInstallerAttribute, de a telepítési segédprogram ténylegesen meghívja, és ezért példányosítja az osztályt.
#using <System.dll>
#using <System.ServiceProcess.dll>
#using <System.Configuration.Install.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Configuration::Install;
using namespace System::ServiceProcess;
using namespace System::ComponentModel;
[RunInstaller(true)]
public ref class MyProjectInstaller : public Installer
{
private:
ServiceInstaller^ serviceInstaller1;
ServiceInstaller^ serviceInstaller2;
ServiceProcessInstaller^ processInstaller;
public:
MyProjectInstaller()
{
// Instantiate installers for process and services.
processInstaller = gcnew ServiceProcessInstaller;
serviceInstaller1 = gcnew ServiceInstaller;
serviceInstaller2 = gcnew ServiceInstaller;
// The services run under the system account.
processInstaller->Account = ServiceAccount::LocalSystem;
// The services are started manually.
serviceInstaller1->StartType = ServiceStartMode::Manual;
serviceInstaller2->StartType = ServiceStartMode::Manual;
// ServiceName must equal those on ServiceBase derived classes.
serviceInstaller1->ServiceName = "Hello-World Service 1";
serviceInstaller2->ServiceName = "Hello-World Service 2";
// Add installers to collection. Order is not important.
Installers->Add( serviceInstaller1 );
Installers->Add( serviceInstaller2 );
Installers->Add( processInstaller );
}
static void Main()
{
Console::WriteLine("Usage: InstallUtil.exe [<service>.exe]");
}
};
int main()
{
MyProjectInstaller::Main();
}
using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;
[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
private ServiceInstaller serviceInstaller1;
private ServiceInstaller serviceInstaller2;
private ServiceProcessInstaller processInstaller;
public MyProjectInstaller()
{
// Instantiate installers for process and services.
processInstaller = new ServiceProcessInstaller();
serviceInstaller1 = new ServiceInstaller();
serviceInstaller2 = new ServiceInstaller();
// The services run under the system account.
processInstaller.Account = ServiceAccount.LocalSystem;
// The services are started manually.
serviceInstaller1.StartType = ServiceStartMode.Manual;
serviceInstaller2.StartType = ServiceStartMode.Manual;
// ServiceName must equal those on ServiceBase derived classes.
serviceInstaller1.ServiceName = "Hello-World Service 1";
serviceInstaller2.ServiceName = "Hello-World Service 2";
// Add installers to collection. Order is not important.
Installers.Add(serviceInstaller1);
Installers.Add(serviceInstaller2);
Installers.Add(processInstaller);
}
public static void Main()
{
Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
}
}
Imports System.Collections
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.ComponentModel
<RunInstallerAttribute(True)> _
Public Class MyProjectInstaller
Inherits Installer
Private serviceInstaller1 As ServiceInstaller
Private serviceInstaller2 As ServiceInstaller
Private processInstaller As ServiceProcessInstaller
Public Sub New()
' Instantiate installers for process and services.
processInstaller = New ServiceProcessInstaller()
serviceInstaller1 = New ServiceInstaller()
serviceInstaller2 = New ServiceInstaller()
' The services will run under the system account.
processInstaller.Account = ServiceAccount.LocalSystem
' The services will be started manually.
serviceInstaller1.StartType = ServiceStartMode.Manual
serviceInstaller2.StartType = ServiceStartMode.Manual
' ServiceName must equal those on ServiceBase derived classes.
serviceInstaller1.ServiceName = "Hello-World Service 1"
serviceInstaller2.ServiceName = "Hello-World Service 2"
' Add installers to collection. Order is not important.
Installers.Add(serviceInstaller1)
Installers.Add(serviceInstaller2)
Installers.Add(processInstaller)
End Sub
Public Shared Sub Main()
Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]")
End Sub
End Class
Megjegyzések
A ServiceProcessInstaller végrehajtható fájlokban az összes szolgáltatás közösen működik. A telepítési segédprogram a telepíteni kívánt szolgáltatásokkal társított beállításjegyzék-értékek írására használja.
Szolgáltatás telepítéséhez hozzon létre egy olyan projekttelepítői osztályt, amely öröklődik, Installerés állítsa az osztályon a RunInstallerAttribute következőre true: . A projekten belül példányosíthat egy ServiceProcessInstaller példányt szolgáltatásalkalmazásonként, és egy ServiceInstaller példányt az alkalmazás minden egyes szolgáltatásához. Végül adja hozzá a ServiceProcessInstaller példányt és a ServiceInstaller példányokat a projekttelepítő osztályhoz.
Amikor InstallUtil.exe fut, a segédprogram a szolgáltatásszerelvényben lévő osztályokat keresi a RunInstallerAttribute következő értékre állítva true: . Osztályokat adhat hozzá a szolgáltatásszerelvényhez úgy, hogy hozzáadja őket a Installers projekttelepítőhöz társított gyűjteményhez. Ha RunInstallerAttribute igen false, a telepítési segédprogram figyelmen kívül hagyja a projekttelepítőt.
Egy példány ServiceProcessInstalleresetében a módosítható tulajdonságok közé tartozik annak megadása, hogy egy szolgáltatásalkalmazás a bejelentkezett felhasználótól eltérő fiók alatt fusson. Megadhat egy adott Username és Password párot, amely alatt a szolgáltatásnak futnia kell, vagy megadhatja Account , hogy a szolgáltatás a számítógép rendszerfiókja, egy helyi vagy hálózati szolgáltatásfiók vagy felhasználói fiók alatt fusson.
Note
A számítógép rendszerfiókja nem ugyanaz, mint a rendszergazdai fiók.
Általában nem hívja be a metódusokat ServiceInstaller a kódon belül, általában csak a telepítési segédprogram hívja meg őket. A telepítési segédprogram a telepítési folyamat során automatikusan meghívja a metódusokat és ServiceProcessInstaller.Install a ServiceInstaller.Install metódusokat. Szükség esetén az összes korábban telepített összetevő meghívásával Rollback (vagy ServiceInstaller.Rollback) visszaállítja a hibákat.
Az alkalmazás telepítési rutinja automatikusan megőrzi a már telepített összetevőkkel kapcsolatos információkat a projekttelepítő Installer.Contexthasználatával. Ez az állapotinformáció folyamatosan frissül a ServiceProcessInstaller példányként, és minden ServiceInstaller példányt a segédprogram telepített. Általában szükségtelen, hogy a kód explicit módon módosítsa ezeket az állapotinformációkat.
A ServiceProcessInstaller példányosítás az alaposztály konstruktorának ComponentInstallermeghívását eredményezi.
Konstruktorok
| Name | Description |
|---|---|
| ServiceProcessInstaller() |
Létrehozza az osztály új példányát ServiceProcessInstaller . |
Tulajdonságok
| Name | Description |
|---|---|
| Account |
Lekéri vagy beállítja a szolgáltatásalkalmazás futtatásához tartozó fiók típusát. |
| CanRaiseEvents |
Beolvas egy értéket, amely jelzi, hogy az összetevő képes-e eseményt létrehozni. (Öröklődés forrása Component) |
| Container |
Lekéri a IContainer .Component (Öröklődés forrása Component) |
| Context |
Lekéri vagy beállítja az aktuális telepítéssel kapcsolatos információkat. (Öröklődés forrása Installer) |
| DesignMode |
Olyan értéket kap, amely jelzi, hogy az Component aktuálisan tervezési módban van-e. (Öröklődés forrása Component) |
| Events |
Lekéri az ehhez Componentcsatolt eseménykezelők listáját. (Öröklődés forrása Component) |
| HelpText |
A szolgáltatástelepítési beállításokhoz megjelenített súgószöveg. |
| Installers |
Lekéri a telepítő által tartalmazott telepítők gyűjteményét. (Öröklődés forrása Installer) |
| Parent |
Lekéri vagy beállítja azt a gyűjteményt tartalmazó telepítőt, amelyhez ez a telepítő tartozik. (Öröklődés forrása Installer) |
| Password |
Lekéri vagy beállítja annak a felhasználói fióknak a jelszavát, amely alatt a szolgáltatásalkalmazás fut. |
| Site |
Lekéri vagy megadja a ISite értékét a Component-hez. (Öröklődés forrása Component) |
| Username |
Lekéri vagy beállítja azt a felhasználói fiókot, amelyen a szolgáltatásalkalmazás futni fog. |
Metódusok
| Name | Description |
|---|---|
| Commit(IDictionary) |
Ha felül van bírálva egy származtatott osztályban, befejezi a telepítési tranzakciót. (Öröklődés forrása Installer) |
| CopyFromComponent(IComponent) |
Az alaposztály CopyFromComponent(IComponent) metódusát osztályspecifikus viselkedés nélkül ServiceProcessInstaller implementálja. |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást Component. (Öröklődés forrása Component) |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által Component használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. (Öröklődés forrása Component) |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetService(Type) |
Olyan objektumot ad vissza, amely az általa vagy annak által ComponentContainernyújtott szolgáltatást jelöli. (Öröklődés forrása Component) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| Install(IDictionary) |
Szolgáltatásalkalmazás-adatokat ír a beállításjegyzékbe. Ezt a módszert a telepítési eszközöknek kell használniuk, amelyek automatikusan meghívják a megfelelő módszereket. |
| IsEquivalentInstaller(ComponentInstaller) |
Meghatározza, hogy a megadott telepítő ugyanazt az objektumot telepíti-e, mint a telepítő. (Öröklődés forrása ComponentInstaller) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| OnAfterInstall(IDictionary) |
Az eseményt emeli AfterInstall ki. (Öröklődés forrása Installer) |
| OnAfterRollback(IDictionary) |
Az eseményt emeli AfterRollback ki. (Öröklődés forrása Installer) |
| OnAfterUninstall(IDictionary) |
Az eseményt emeli AfterUninstall ki. (Öröklődés forrása Installer) |
| OnBeforeInstall(IDictionary) |
Az eseményt emeli BeforeInstall ki. (Öröklődés forrása Installer) |
| OnBeforeRollback(IDictionary) |
Az eseményt emeli BeforeRollback ki. (Öröklődés forrása Installer) |
| OnBeforeUninstall(IDictionary) |
Az eseményt emeli BeforeUninstall ki. (Öröklődés forrása Installer) |
| OnCommitted(IDictionary) |
Az eseményt emeli Committed ki. (Öröklődés forrása Installer) |
| OnCommitting(IDictionary) |
Az eseményt emeli Committing ki. (Öröklődés forrása Installer) |
| Rollback(IDictionary) |
Visszaállítja a beállításjegyzékbe írt szolgáltatásalkalmazás-adatokat a telepítési eljárással. Ezt a módszert a telepítési eszközöknek kell használniuk, amelyek automatikusan feldolgozzák a megfelelő módszereket. |
| ToString() |
String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni. (Öröklődés forrása Component) |
| Uninstall(IDictionary) |
Ha felül van bírálva egy származtatott osztályban, eltávolít egy telepítést. (Öröklődés forrása Installer) |
esemény
| Name | Description |
|---|---|
| AfterInstall |
A tulajdonságban lévő Install(IDictionary) összes telepítő metódusának futtatása után Installers következik be. (Öröklődés forrása Installer) |
| AfterRollback |
A tulajdonságban lévő Installers összes telepítő telepítése után következik be. (Öröklődés forrása Installer) |
| AfterUninstall |
Akkor következik be, ha a tulajdonság összes telepítője végrehajtja az Installers eltávolítási műveleteket. (Öröklődés forrása Installer) |
| BeforeInstall |
A telepítőgyűjteményben lévő összes telepítő metódusának futtatása előtt Install(IDictionary) következik be. (Öröklődés forrása Installer) |
| BeforeRollback |
A tulajdonság telepítőinek Installers visszaállítása előtt történik. (Öröklődés forrása Installer) |
| BeforeUninstall |
Mielőtt a tulajdonság telepítői végrehajtanák az Installers eltávolítási műveleteket. (Öröklődés forrása Installer) |
| Committed |
Akkor fordul elő, ha a tulajdonság összes telepítője véglegesítette a Installers telepítést. (Öröklődés forrása Installer) |
| Committing |
Mielőtt a tulajdonság telepítői véglegesítik a Installers telepítésüket. (Öröklődés forrása Installer) |
| Disposed |
Akkor fordul elő, ha az összetevőt a metódus hívása megsemmisíti Dispose() . (Öröklődés forrása Component) |