Ir para o conteúdo
  • 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]

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.