Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fLaSh_PT

Instalar Serviço no Win7 [Resolvido]

Recommended Posts

fLaSh_PT

Ora viva;

Estou com o pequeno problema em instalar um serviço no Windows 7.

É em uma aplicação que desenvolvi, e que funciona bem no Windows XP..

Como a maquina de um cliente está com o Win7, deparei me com um problema..

O serviço não instala dá a seguinte mensagem de erro:

Não é possível abrir o gestor de controlo de serviços no computador '.'. Esta operação poderá requerer outros privilégios.

Nota: o erro ocorre mesmo com os privilégios de administrador.

Utilizo este código:

Imports System.ComponentModel
Imports System.Configuration.Install

<RunInstaller(True)> _
Public Class Installer
    Inherits System.Configuration.Install.Installer

#Region " Component Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Component Designer.
        InitializeComponent()

    End Sub
    Friend WithEvents ServiceProcessInstaller1 As System.ServiceProcess.ServiceProcessInstaller
    Friend WithEvents ServiceInstaller1 As System.ServiceProcess.ServiceInstaller
    Friend WithEvents ServiceController1 As System.ServiceProcess.ServiceController

    'Required by the Component Designer
    Private components As System.ComponentModel.Container

    'NOTE: The following procedure is required by the Component Designer
    'It can be modified using the Component Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.ServiceProcessInstaller1 = New System.ServiceProcess.ServiceProcessInstaller
        Me.ServiceInstaller1 = New System.ServiceProcess.ServiceInstaller
        Me.ServiceController1 = New System.ServiceProcess.ServiceController
        '
        'ServiceProcessInstaller1
        '
        Me.ServiceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem
        Me.ServiceProcessInstaller1.Password = Nothing
        Me.ServiceProcessInstaller1.Username = Nothing
        '
        'ServiceInstaller1
        '
        Me.ServiceInstaller1.Description = "Este serviço segura as operações provisionadas por o Software Avaya."
        Me.ServiceInstaller1.DisplayName = "VIPVOZ Taxacao"
        Me.ServiceInstaller1.ServiceName = "VIPVOZ Taxacao"
        Me.ServiceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic
        '
        'ServiceController1
        '
        Me.ServiceController1.MachineName = "."
        Me.ServiceController1.ServiceName = "VIPVOZ Taxacao"
        '
        'Installer
        '
        Me.Installers.AddRange(New System.Configuration.Install.Installer() {Me.ServiceProcessInstaller1, Me.ServiceInstaller1})

    End Sub

#End Region

    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        Dim ServiceName As String = Me.Context.Parameters.Item("SERVICENAME")
        ServiceInstaller1.ServicesDependedOn = New String() {ServiceName}
        MyBase.Install(stateSaver)
    End Sub

    'Private Sub ServiceInstaller1_Committing(ByVal sender As System.Object, ByVal e As System.Configuration.Install.InstallEventArgs) Handles ServiceInstaller1.Committing
    '    Try
    '        '  ServiceOptions.InteractWithDesktop(ServiceController1)
    '    Catch
    '    End Try
    'End Sub

End Class

Corro este código para instalar o serviço, caso ainda não esteja instalado..

                    Using oEventLog As New System.Diagnostics.EventLog
                        Try
                            oEventLog.Source = "VIPVOZ Taxacao"
                            System.Configuration.Install.ManagedInstallerClass.InstallHelper _
                                    ( _
                                        New String() {System.Reflection.Assembly.GetExecutingAssembly().Location} _
                            )
                            oEventLog.WriteEntry(oEventLog.Source & " installed successfully")
                            MessageBox.Show("Service installed successfully!", APP_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
                        Catch ex As Exception
                            oEventLog.WriteEntry(oEventLog.Source & " installation failed: " & ex.ToString)
                            MessageBox.Show("Service installation failed" & ex.ToString, APP_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error)
                        Finally
                            oEventLog.Close()
                        End Try
                    End Using

Se alguém souber a origem do erro, ficava grato por alguma ajuda.

Compr.


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
ribeiro55

Já experimentaste desactivar o UAC para despistar a coisa?

Ficava-se a saber se está relacionado com níveis de acesso ou se o o 7 não papa o que o XP papava.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jpaulino

Adicionaste um installer, certo? E o ServiceProcessInstaller está definido na Account como Local?

Share this post


Link to post
Share on other sites
fLaSh_PT

Adicionaste um installer, certo? E o ServiceProcessInstaller está definido na Account como Local?

Sim está como LocalSystem.

Isto é bastante estranho, porque o software está a funcionar em maquinas com o XP sem problemas..


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
fLaSh_PT

Já vi qual era o problema..

Está relacionado com as permissões do utilizador.. mesmo com conta de Administrador é necessário correr a aplicação ao instalar o serviço pela primeira vez, com a opção "Executar como administrado", opção essa que se encontra no "right click" do "shell" do "explorer"..


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
ribeiro55

Daí ter sugerido desligares o UAC.

Quando há coisas com permissões é a primeira coisa que faço para entender se o problema está ao nível funcional ou burocrático.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
fLaSh_PT

Daí ter sugerido desligares o UAC.

Quando há coisas com permissões é a primeira coisa que faço para entender se o problema está ao nível funcional ou burocrático.

Sim é uma boa ideia.. no inicio só não tinha percebido o que querias dizer com "UAC"..

Compr.


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
ribeiro55

User Account Control.

É o que faz o Windows Vista+ ser o Windows Vista+ ;)

Basicamente, reitera as hierarquias e faz aquelas 500 perguntas de permissão quando tentas mexer em alguma coisa crítica ou pouco mais ou menos.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.