none
Perda de sessão quando eu excluo um arquivo RRS feed

  • Pergunta

  • Pessoal estou com o seguinte problema, minha aplicação faz o upload de imagens para uma pasta que fica na raiz do projeto chamada banner, pra cada banner eu crio um registro numa tabela no banco e retorno o numero da chave primaria, esse numero será o nome da pasta que ficara dentro da pasta banner. Quando eu preciso excluir um banner, eu excluo a pasta referente a esse banner que esta dentro dessa pasta na raiz. O problema é que apos a exclusao parece que a aplicação reinicia porque perde a sessao. Mas se eu excluir apenas o arquivo isso nao ocorre. Vejam o codigo abaixo. Alguem pode me dizer como fazer essa exclusao sem reiniciar a aplicação? Obrigado

     

        protected void odsmenu_Deleting(object sender, ObjectDataSourceMethodEventArgs e)

        {

            String x = e.InputParameters["idbanner"].ToString();

            if (Directory.Exists(Server.MapPath("~/banner/" + x)))

            {

                Directory.Delete(Server.MapPath("~/banner/" + x), true);

            }

        }


    --
    Gerson C. Júnior
    http://www.ekow.com.br
    sexta-feira, 14 de janeiro de 2011 02:55

Respostas

Todas as Respostas

  • Junior,

    Sempre que você altera um arquivo dentro da estrutura dos arquivos do ASP.Net, você força uma recompilação dos aspx. Isso ocorre até em design time, por exemplo, se vc altera a web config, ou um aspx e ele é chamado, a aplicação mata as sessões, recompila e começa de novo.

    Jogue esses arquivos para fora da estrutura de diretórios da aplicação e o problema será resolvido.

     

    Abraço,

    Eric

    sexta-feira, 14 de janeiro de 2011 10:18
  • Junior,

    Sempre que você altera um arquivo dentro da estrutura dos arquivos do ASP.Net, você força uma recompilação dos aspx. Isso ocorre até em design time, por exemplo, se vc altera a web config, ou um aspx e ele é chamado, a aplicação mata as sessões, recompila e começa de novo.

    Jogue esses arquivos para fora da estrutura de diretórios da aplicação e o problema será resolvido.

     

    Abraço,

    Eric

    Eric,

    Obrigado por sua resposta (ajuda),  eu já tinha conhecimento que se o webconfig fosse alterado ou algum aspx fosse alterado a aplicação seria reiniciada. Mas confesso que não sabia que se eu removesse uma pasta, que esta dentro de uma pasta da raiz, que só tem imagens também causaria o restart da aplicação. Eu entendi correto? É isso mesmo? Outro detalhe na inclusão eu crio uma pasta dentro da pasta banner e não ocorre o restart, mas na exclusao quando eu removo a pasta reinicia... Ah já ia esquecendo, localhost não reinicia, so no servidor. Obrigado.


    --
    Gerson C. Júnior
    http://www.ekow.com.br
    sexta-feira, 14 de janeiro de 2011 14:15
  • GJunior,

    Eu não sei te dizer exatamente quais arquivos que você mexe e a session é reiniciada. Sei que tem arquivos dentro da pasta da aplicação que mexidos causam este comportamento, por exemplo o Web.config e mesmo os aspx.

    O melhor a fazer nesse caso é uma prova de conceito. Eu sei que usando IIS local se mexer no Web.config, a session é derrubada e reiniciada. Talvez realizando este teste com a sua aplicação gerando os arquivos e os excluindo vc consiga reproduzir o cenário de produção.

    Pode ser até que esse comportamento varie dependendo da forma que o ASP.Net é carregado no servidor Web. Em IIS até 5.5 (win xp) ele roda no processo aspnet_wp, o servidor de desenvolvimento do Visual Studio pode se comportar de forma diferente e mesmo em IIS 6.0 em diante a forma de rodar o processo do asp.net muda.

    Pode ser que essa variação de ambiente influencie também nesse comportamento, devido ao usuário do sistema operacional que executa o processo do asp.net e mesmo as permissões deste usuário no SO.

    Anti virus e outras aplicações que mexam no file system também podem gerar este comportamento indesejado.

     

    Abraço,

    Eric

    • Marcado como Resposta Harley Araujo terça-feira, 18 de janeiro de 2011 14:04
    sexta-feira, 14 de janeiro de 2011 15:32
  • GJunior,

    Eu não sei te dizer exatamente quais arquivos que você mexe e a session é reiniciada. Sei que tem arquivos dentro da pasta da aplicação que mexidos causam este comportamento, por exemplo o Web.config e mesmo os aspx.

    O melhor a fazer nesse caso é uma prova de conceito. Eu sei que usando IIS local se mexer no Web.config, a session é derrubada e reiniciada. Talvez realizando este teste com a sua aplicação gerando os arquivos e os excluindo vc consiga reproduzir o cenário de produção.

    Pode ser até que esse comportamento varie dependendo da forma que o ASP.Net é carregado no servidor Web. Em IIS até 5.5 (win xp) ele roda no processo aspnet_wp, o servidor de desenvolvimento do Visual Studio pode se comportar de forma diferente e mesmo em IIS 6.0 em diante a forma de rodar o processo do asp.net muda.

    Pode ser que essa variação de ambiente influencie também nesse comportamento, devido ao usuário do sistema operacional que executa o processo do asp.net e mesmo as permissões deste usuário no SO.

    Anti virus e outras aplicações que mexam no file system também podem gerar este comportamento indesejado.

     

    Abraço,

    Eric

    Eric,

    Obrigado.

     


    --
    Gerson C. Júnior
    http://www.ekow.com.br
    sexta-feira, 14 de janeiro de 2011 15:44