none
Subdiretório virtual acessar pasta que na raiz da aplicação

    Pergunta

  • Fala ae browzinhos.... 
    Estou com um grande problema.... Tenho um site onde existe uma administração que está localizada em um subdiretório: raiz - website
       |- admin/ -administração

    O que acontece é o seguinte, tenho uma classe que realiza upload de arquivos, só que quando o mesmo é realizado na administração deveria salvar os arquivos em uma pasta na raiz só que ele não consegue achar essa pasta, dou um "~/Anuncios" mas ele salva dentro da pasta admin.

    Alguém sabe como acessar pastas na raiz quando se está trabalhando com subdiretórios aplicativos?

    Abraço.
    segunda-feira, 30 de março de 2009 18:06

Respostas

Todas as Respostas

  • E ai mano brow?

         Cara, meio estranho isso hein. Se for o que eu to pensando (2 aplicações separadas sendo que uma está dentro do DV da outra no IIS) tu poderia tentar fazer o acesso usando FileSystem msm, ou seja "../../AlgumaCoisa"


         Tenta aí meu! Quando nada tá certo qualquer tentativa é válida né? hehehehe!

    Abração meu amigo!
    Leandro Amorim
    terça-feira, 31 de março de 2009 14:35
  • É então, tentei assim tbm mas da erro na função DirectoryInfo falando que nao consegue acessar o caminho "web/anuncios".
    Seria 2 aplicações distintas mas que fazem parte do mesmo site kkk
    O site em si "raiz" e a área administrativa "raiz/admin" só que minha pasta admin ta definida como aplicativo ou seja ela tem seu web.config que herda algumas coisas do web.config da raiz e assim vai....

    Outra coisa que me deixou encucado é o seguinte:
    Um subdiretório aplicativo consegue acessar o app_code na raiz?
    Eu tive que criar um app_code, app_themes dentro do meu subdiretório para funcionar, mas se eu coseguir fazer ele acessar o app_code da raiz iria deixar tudo mais agrupado, etc....
    terça-feira, 31 de março de 2009 15:35
  • Cara... posta ai a parte do código que ele tá "zicando" a vida do peão! hehehehehehe!
    Coloca a parte do código que dá erro fazendo um favor, vamo dá uma olhada nesse danado aí.


    Lembrando.... tu tem no seu visual studio UMA solução com 2 projetos, sendo PELO MENOS UM aplicação web certo? Alem disso também tem que ser criando um como um subDiretorio no IIS.

    Se for o caso, tenta abrir o seu projeto no VS usando o IIS.

    Posta o código e se for o caso eu tento implementar algo assim e te mando ai!

    Abração!
    Leandro Amorim

    terça-feira, 31 de março de 2009 17:01
  • O código é simplismente esse:

    string caminho = "../Anuncios";

    kkkkkkkkkk

    Cara eu criei UM website ao invés de um projeto web, será que é isso?
    Dai dentro desse website tem a pasta admin, só que eu nao consigo fazer com que essa admin tenha acesso ao app_code da raiz, só consigo criar um app_code dentro dessa admin....

     

    OBS: eu já setei no iis que a pasta admin deve ser um aplicativo.

    terça-feira, 31 de março de 2009 23:53
  • Bom dia Mano brow!

         Saquei agora qual é a situação, mas me fala 3 coisinhas:
    1- O que tu quer fazer exatamente dentro da pasta App_Code, porque normalmente os arquivos que ficam lá são arquivos C#, ou seja, as referencias são feitas pelo namespace e o nome da classe.

    2 - Você desejar acessar o arquivo na pasta App_Code a partir de onde? De um arquivo .aspx.cs ou .aspx apena?

    3 - Qual o tipo do arquivo que tu deseja acessar?


    Me fala exatamente o que tu desejar fazer, quais os tipos de arquivos envolvidos, porque facilitaria bastante a conversa!


    Abração
    Leandro Amorim
    quarta-feira, 1 de abril de 2009 12:16
  • Então....

    1 - na minha pasta app_code ficam minhas classes, Model, DAL, BLL, Lib
    2 - eu quero acessar apartir de uma pagina aspx.cs
    3 - arquivos de classe mesmo  .cs

    O que eu quero fazer exatamente é ao invés de ter uma pasta app_code na raiz e uma no subdiretório queria ter só na raiz, até porque as classes para administração e pra raiz serão as mesmas só mudando a BLL mesmo....
    No visual studio quando eu debugo ele entende do jeito que eu to querendo, ele busca as classes na raiz mas no iis ele procura as classes na pasta app_code dentro do subdiretório.
    quarta-feira, 1 de abril de 2009 12:27
  • E ai meu amigo?

         Nesse caso tu vai acessar usando o namespace cara, não precisa indicar caminho nenhum. Por exemplo:

         Tu tem 2 classes, uma apenas para validação e outra de usuário, para cadastro:
           - Valida.cs (namespace App.Padrao)
           - FrmCadUsuario.aspx.cs (namespace App.Cadastro)

    dentro do arquivo FrmCadUsuario.aspx.cs tu cria um objeto com um código +/-...

    App.Padrao.Valida val = new App.Padrao.Valida();

    ou se preferir de um jeito diferente....

    adiciona um using na parte de cima do arquivo de classe:

              using App.Padrao

    Na parte do codigo em si, tu cria o objeto dessa forma:

              Valida val = new Valida();

    O proprio visual studio já se localiza, já acha os arquivos de um namespace e os locais.

    Tu é de onde meu amigo!?

    Qualquer dúvida estou a diposição mano brow!


    Leandro Amorim
    quarta-feira, 1 de abril de 2009 12:42
  • Brodi....

    To ligado....kkkkk
    Eu mando o using la encima

    using Model.anuncios;
    using DAL.anuncios;
    using BLL.anuncios;

    Dai perfeito no visual studio ele interpreta certinho, quando eu faço isso ele verifica la na app_code da raiz....
    Mas no iis ele não entende eu tenho que colocar uma cópia do app_code na pasta admin pra ele achar as classes e isso ____ com a pasta Bin e App_Themes.

    É como se o iis entendesse que a pasta admin é uma coisa completamente diferente da raiz, ou seja 2 aplicativos diferentes....
    Eu acho que é isso, alguma configuração errada minha no iis, nao sei se devo setar a pasta como diretório virtual ou como aplicativo, mas o problema é que na locaweb funciona igual o meu iis, só o maldito visual studio que interpreta do jeito que eu queria kkkk

    Eu sou do interior de sao paulo, taubaté kkkk

    quarta-feira, 1 de abril de 2009 12:58
  • seguinte....

         Essa pasta "admin" não pode ser criada no IIS como diretorio virtual dentro de outro. Tu cria o diretorio virtual apontando apenas pra pasta RAIZ. Dentro da pasta ADMIN tu joga um arquivo DEFAULT.ASPX e ele já vai se localizar quando tu digitar por exemplo: http://localhost/AppTeste/Admin , isso já faz cair dentro do DEFAULT.ASPX que está dentro da pasta ADMIN da sua aplicação.

    Sacou!? hehehehehe!

    Tu tem msn cara? to tentando manter contato com o maior numero de desenvolvedores possível. Montar um network legal saca?

    Abração e boa sorte!
    Leandro Amorim
    quarta-feira, 1 de abril de 2009 13:22
  • Hum....

    Quer dizer que eu não preciso dizer que minha pasta admin é uma aplicação no iis?
    Mas dentro dela vai ter um web.config para conseguir setar permissões, etc....

    quarta-feira, 1 de abril de 2009 13:27
  • O web.config tu usa o da propria aplicação principal, ou configura as permissões no IIS, mas o ideal é que seja no web.config.
    Tu consegue separar o lance das permissões no web.config por pastas e/ou arquivos.

    E realmente não tem necessidade de criar 2 diretorios dentro do IIS. Ele entende como se fossem 2 aplicações distintas, quando na verdade uma é ligada a outra, sendo que uma se trata apenas do ADMIN da sua WEB por exemplo.
    quarta-feira, 1 de abril de 2009 13:33
  • Pts brodi, isso é realmente um grande problema pra mim...
    Eu comprei a hospedagem antes pq eu sabia que ia dar zica nessa parada, primeira vez que estou criando um site completo em aspnet, sempre trabalhei com php.


    Preciso muito de um exemplo cara, quando vc cria um site com administração vc não cria a pasta admin para separar as coisas?
    Se cria, como vc seta as permissões de acesso no web.config raiz?
    Através do location ? (já ouvi falar mas não sei muito bem como utilizar)


    Tenho msn sim brodi, manda o seu pra eu te add aqui.

    Abraço...

    quarta-feira, 1 de abril de 2009 13:41
  • Aow mano brow

    meu msn: leandro_amorim6@hotmail.com

    sobre o lance de permissões, dah uma olhada nesse link!
    http://support.microsoft.com/default.aspx/kb/316871


    Abraçao!
    Leandro Amorim
    • Marcado como Resposta Evandro_Passos quarta-feira, 1 de abril de 2009 15:30
    quarta-feira, 1 de abril de 2009 14:05