none
Unknown Error - C# Winforms comunicação com IIS. RRS feed

  • Pergunta

  • Eu estou tentando montar uma Windows Forms Application que será usada para auxiliar na publicação dos sites no nosso servidor de internet. Na minha máquina (onde está sendo desenvolvida a aplicação) eu tenho IIS 5.1, no servidor de internet é o IIS 6.0. Inicialmente, para testes, eu apenas estou tentando parar e iniciar o site da web padrão do IIS na minha máquina. Abaixo segue o código usado para parar o site:


    private void PararSitesSelecionados()
    {
    DirectoryEntry DirectoryEntryRaiz = new DirectoryEntry("IIS://localhost/", @"Usuario", "senha", AuthenticationTypes.Anonymous);

    DirectoryEntryRaiz.Invoke("stop");
    }



    Porém, quando tento executar esse código, estoura uma exceção:

    COM Exception was unhandled: Unknown error (0x80005000).

    Alguém poderia me ajudar a resolver este problema?

    Obrigado.

    sexta-feira, 23 de fevereiro de 2007 17:17

Respostas

  • Bruno,

     

    Isso é um erro de permissão, pelo menos no meu caso, para resolver isso, no Vista, eu tive que clicar com o direito e clicar em "Run as administrator" e deu certo, consegui acessar e manipular os sites do IIS no vista, além de consultar o artigo no link: http://blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx

     

    Já com o IIS 6, eu tive esse problema também, e eu tirei a parte que efetua a autenticação, porém, eu estava rodando a aplicação logado em uma máquina da rede, onde esse usuário tinha "permissão" de administrador, para acessar a máquina onde o IIS estava configurado.

     

    segue abaixo o meu código:

     

    public bool StartStopIIS(string strEstado, string strServidor, string strSite)
            {
                try
                {
                    ...

                    DirectoryEntry raiz = new DirectoryEntry("IIS://" + strServidor + "/W3SVC");

                    foreach (DirectoryEntry resultado in raiz.Children)
                    {
                        //Verifica se o item é um web Site no IIS
                        if (resultado.SchemaClassName == "IIsWebServer")
                        {
                            //Se for o site escolhido para ser parado..
                            if (resultado.Properties["ServerComment"].Value.ToString().Trim() == strSite.Trim())
                            {
                                //Para o site e grava o resultado em um objeto
                                resultado.Invoke(strEstado, null);

                                ...

                            }
                        }
                    }

                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }

    segunda-feira, 11 de agosto de 2008 18:07

Todas as Respostas

  • Boa tarde pessoal.

     

    Estou com o mesmo problema, só que estou usando o IIS 7, alguém pode nos ajudar?

     

    abraços

    Marcos

     

    quarta-feira, 23 de julho de 2008 17:45
  • Acho que o problema esta no parametro "IIS://localhost/", lembro que ja fiz e utilizei desta forma: "IIS://localhost/W3SVC/1/ROOT"

     

    http://support.microsoft.com/kb/324433

     

    sexta-feira, 25 de julho de 2008 20:33
  • Bruno,

     

    Isso é um erro de permissão, pelo menos no meu caso, para resolver isso, no Vista, eu tive que clicar com o direito e clicar em "Run as administrator" e deu certo, consegui acessar e manipular os sites do IIS no vista, além de consultar o artigo no link: http://blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx

     

    Já com o IIS 6, eu tive esse problema também, e eu tirei a parte que efetua a autenticação, porém, eu estava rodando a aplicação logado em uma máquina da rede, onde esse usuário tinha "permissão" de administrador, para acessar a máquina onde o IIS estava configurado.

     

    segue abaixo o meu código:

     

    public bool StartStopIIS(string strEstado, string strServidor, string strSite)
            {
                try
                {
                    ...

                    DirectoryEntry raiz = new DirectoryEntry("IIS://" + strServidor + "/W3SVC");

                    foreach (DirectoryEntry resultado in raiz.Children)
                    {
                        //Verifica se o item é um web Site no IIS
                        if (resultado.SchemaClassName == "IIsWebServer")
                        {
                            //Se for o site escolhido para ser parado..
                            if (resultado.Properties["ServerComment"].Value.ToString().Trim() == strSite.Trim())
                            {
                                //Para o site e grava o resultado em um objeto
                                resultado.Invoke(strEstado, null);

                                ...

                            }
                        }
                    }

                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }

    segunda-feira, 11 de agosto de 2008 18:07