Jump to content
Sign in to follow this  
diogoduran

Problema com instalação remota

Recommended Posts

diogoduran

Boas..

Conheci a pouco tempo este forum e tenho gostado bastante. Tenho visto varios topicos bastante interessantes.

Venho partilhar um problema recente com um programa que estou a fazer para instalação remota.

Sempre que executo recebo sempre o erro : The RPC Server is Unavaliable. (Exception from HRESULT : 0x800706BA)

O codigo é o seguinte:

private void RemoteMSI(TextBox nomemaquina, TextBox caminhoinst, TextBox argcomando, TextBox username, PasswordBox password, TextBox dominio)
        {
            try
            {

                ConnectionOptions connection = new ConnectionOptions();

                connection.Authentication = AuthenticationLevel.Default; 
                connection.Impersonation = ImpersonationLevel.Impersonate;

                connection.Authority = "kerberos:" + dominio + @"\" + nomemaquina;

                connection.Username = username.Text;

                connection.Password = password.Password;

                connection.EnablePrivileges = true;

                //define the WMI root name space

                ManagementScope scope = new ManagementScope(@"\\" + nomemaquina + "." + dominio + @"\root\CIMV2", connection);

                //define path for the WMI class

                ManagementPath p = new ManagementPath("Win32_Product");

                //define new instance

                ManagementClass classInstance = new ManagementClass(scope, p, null);

                // Obtain in-parameters for the method

                ManagementBaseObject inParams = classInstance.GetMethodParameters("Install");

                // Add the input parameters.

                inParams["AllUsers"] = true; //to install for all users

                inParams["Options"] = argcomando; //paramters must be in the format “property=setting“

                inParams["PackageLocation"] = caminhoinst; //source file must be on the remote machine

                // Execute the method and obtain the return values.

                ManagementBaseObject outParams = classInstance.InvokeMethod("Install", inParams, null);

                // List outParams

                string retVal = outParams["ReturnValue"].ToString();

                string msg = null;

                switch (retVal)
                {

                    case "0":

                        msg = "The installation completed successfully.";

                        break;

                    case "2":

                        msg = "The system cannot find the specified file. \n\r\n\r" + caminhoinst;

                        break;

                    case "3":

                        msg = "The system cannot find the path specified. \n\r\n\r" + caminhoinst;

                        break;

                    case "1619":

                        msg = "This installation package \n\r\n\r " + caminhoinst + "\n\r\n\rcould not be opened, please verify that it is accessible.";

                        break;

                    case "1620":

                        msg = "This installation package \n\r\n\r " + caminhoinst + "\n\r\n\rcould not be opened, please verify that it is a valid MSI package.";

                        break;

                    default:

                        msg = "Please see... \n\r\n\r http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/error_codes.asp \n\r\n\rError code: " + retVal;

                        break;

                }

                // Display outParams

                MessageBox.Show(msg, "Installation report");

            }

            catch (ManagementException me)
            {

                MessageBox.Show(me.Message, "Management Exception");

            }

            catch (COMException ioe)
            {

                MessageBox.Show(ioe.Message, "COM Exception");

            }

        }

Continuem o bom trabalho.

Cumprimentos

Share this post


Link to post
Share on other sites
M6

diogoduran, a mensagem de erro é bem explicita: o servidor não está disponível (ou não foi encontrado ou algo idêntico)...

Não me parece que haja algum bug na tua aplicação.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
diogoduran

Mas este erro acontece com qualquer pc onde eu ponha a aplicação a correr.

Ja experimentei em maquinas virtuais, nos pc's de casa, nos pc's da empresa.

Verifiquei os serviços de RPC e estão inicializados.

Obrigado pela resposta  :cheesygrin:

Share this post


Link to post
Share on other sites
M6

Lá porque o erro acontece em todas as máquinas não quer dizer que seja um bug no programa.

Se o serviço estiver desligado, por exemplo, o erro dará em todo o lado...

Verifica se tens permissões para aceder a esse serviço, se não está a ser barrado por alguma firewall, e, antes de tudo, verifica que está a fazer a chamada ao serviço como deve ser, endereço, porto, etc.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
diogoduran

Boas .. Ja tinha feito a validação do serviço tanto nas maquinas onde testei como nas maquinas onde estava a tentar instalar o software.

Para validar se conseguia aceder a informação do Win32_product da maquina onde estava a tentar instalar o software, testei com um programa externo para validar essa situação e consegui exportar toda a informação.

Obrigado

Share this post


Link to post
Share on other sites
diogoduran

Boas ..

Andei a fazer algumas alterações e já consego efectuar a ligação remota a maquina mas agora dá-me o erro 123. Andei a pesquisar e diz que pode ser do directorio ser invalido mas eu ja experimentei alterar até mesmo para a maquina local e dá-me sempre o mesmo erro.

Já aconteceu o mesmo a alguem?

Obrigado

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
Sign in to follow this  

×
×
  • Create New...

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.