none
Abrir pasta do Explorer a partir de página RRS feed

  • Pergunta

  • Olá Pessoal!

    Tenho uma página em C# que roda dentro de um ambiente corporativo.

    Eu gostaria que um link, nesta página, abrisse uma pasta no servidor, que por sinal está compartilhada na rede, embora não faça parte das pastas do site.

    Procurando na internet achei o Process.Start , testei ele de diversas maneiras, porém elas só funcionam nos testes realizados pelo Visual Studio. Qdo coloco o site no servidor ou não funciona ou dá acesso negado.

    Preciso dar alguma permissão especial?

    Lembrando que a pasta não está dentro do site e está compartilhada na rede, onde todos podem visualizar, embora nem todos possam alterar.

    Seguem, algumas das tentativas que usei para o Process.Start:

    TENTATIVA 01

            var startInfo = new ProcessStartInfo("\\\\VET-SRV\\Exames\\Laboratorio");
            startInfo.WorkingDirectory = path;
            startInfo.UseShellExecute = true;
            Process.Start(startInfo);


    TENTATIVA 02

    Process.Start(Environment.GetEnvironmentVariable("WINDIR") + @"\\explorer.exe", "\\\\VET-SRV\\Exames\\Laboratorio");

    TENTATIVA 03

    Process.Start("\\\\VET-SRV\\Exames\\Laboratorio");

    Todas dão acesso negado quando roda no servidor. Ele é Win Server 2012.

    Abçs! =D

    terça-feira, 6 de junho de 2017 19:50

Respostas

Todas as Respostas

  • terça-feira, 6 de junho de 2017 20:30
  • Oi Filipe!

    Vlw pelo link, o objetivo do rapaz é bem parecido com o meu, lá tem duas sugestões:

    Uma é o próprio Process.Start e a outra é o folderBrowserDialog1.

    Só que o Process.Start é o que estou trabalhando, tive até umas idéias enquanto li o dele mas sem sucesso. :/
    folderBrowserDialog1 só funciona em windows forms e meu projeto é Web. 

    Criei uma página isolada, só para esse teste e tentei usar o Process.Start  de mais uma maneira:

             string folderPath = "\\\\VET-SRV\\Exames\\Laboratorio";
            string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
            Process.Start("explorer", folderPath);

    Todas essas tentativas funcionam na versão do site no Visual Studio, mas nenhuma funciona no Server. Todas dão Access Denied.

    Creio que deva ser alguma autorização para dar.

    quarta-feira, 7 de junho de 2017 20:17
  • Certo.

    Aparece alguma mensagem de erro, ou apenas acesso negado? Ele não aponta mais nada? Tipo onde foi negado, ou o motivo...
    quinta-feira, 8 de junho de 2017 12:26
  • Oi.
    Essa é a msg que aparece na tela de erro no servidor:

    Acesso negado

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.ComponentModel.Win32Exception: Acesso negado

    Erro de Origem: 

    Linha 24:             Process.Start("\\\\VET-SRV\\Exames\\Laboratorio");

    Rastreamento de Pilha: 


    [Win32Exception (0x80004005): Acesso negado]
       System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) +1091
       System.Diagnostics.Process.Start(ProcessStartInfo startInfo) +60
       TesteAbrir.btnAbrir_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\PlataformaAlvorada\TesteAbrir.aspx.cs:24
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981


    :)

    • Editado pjsantiago89 sexta-feira, 9 de junho de 2017 17:18 add informações!
    quinta-feira, 8 de junho de 2017 17:39
  • Boa tarde, pjsantiago89.

    Conseguiu resolver?
    sexta-feira, 16 de junho de 2017 16:59
  • Bom dia,

    Por falta de retorno esta thread esta encerrada!

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 19 de junho de 2017 19:14
    Moderador
  • Não consegui ainda Filipe.    :/

    Um amigo meu me sugeriu que eu chamasse um arquivo BAT que fizesse a abertura da pasta.
    Mais uma vez deu o mesmo problema, o arquivo BAT funciona normalmente pelo Visual Studio, mas não executa pelo servidor.

    Em um último teste, simulei um erro de caminho e ele me retornou erro de caminho não encontrado. (conforme esperado)
    Com o caminho correto (apontando para pasta onde estava o BAT) e sem chamar o BAT ele me deu acesso negado ( como da última vez.)
    Quando chamo o arquivo BAT correto, ele simplesmente não executa nada, somente atualiza a página, sem reportar erros, como se não houvesse programação no botão.

    Pelo visto, meu problema agora é como fazer o IIS liberar o arquivo BAT de ser executado.

    Abçs. 

    terça-feira, 20 de junho de 2017 18:36