Pergunta

Eu tenho um cenário onde eu preciso carregar um arquivo da aplicação de um web e usá-lo em outro. Minha configuração é o seguinte.

  • Um servidor, hospedagem duas aplicações web no IIS - ambos são ASP.NET
  • Uma das aplicações é usado para administrar o outro + um monte mais coisas
  • Eu preciso fazer upload de um arquivo a partir deste aplicativo admin, salvar o caminho na DB através da DAL e, em seguida, acessar o arquivo do outro aplicativo web, que iria fornecer o arquivo para download
  • I manter arquivos no disco, apenas o caminho em DB

Então, onde e como posso fazer o upload do arquivo para que ele possa ser acessado a partir de ambas as aplicações web? Devo usar um serviço ou há alguma outra maneira?
Aqui estão algumas questões relacionadas eu encontrei, mas eu não acho que eles cobrem meu cenário especial:
Como lidar com o upload de arquivos para um servidor de imagem dedicado
Como fazer upload de um arquivo para um serviço WCF?

Foi útil?

Solução

Uma vez que ambos os aplicativos estão no mesmo servidor esta deve ser simples:

  • Salve o arquivo carregado em algum lugar em o servidor.
  • Criar um diretório virtual em qualquer aplicação a necessidade de expor o arquivos que apontam para o caminho físico.
  • Salve o caminho virtual no db de flexibilidade

Outras dicas

Você poderia configurar um novo diretório virtual em cada aplicativo que aponta para a mesma pasta no servidor onde você iria enviar os arquivos para. Vamos dizer que você criou uma nova pasta na unidade C: chamada "Imagens" ou seja c: \ uploads. Então, em IIS configurar um novo diretório virtual chamado "uploads" que aponta para c: \ envios para cada aplicação web. Isso deve dar ambos os locais o acesso aos arquivos.

Posso perguntar por que você não está mantendo o arquivo no banco de dados? Isto faria com que passá-la em torno de muito mais fácil.

Assumindo que o caminho do arquivo que você colocar no DB é acessível a partir da web app não-admin (que parece que ele é), o arquivo só precisa ir a algum lugar que ambos os aplicativos têm direitos de acesso. Somente a aplicação de administração precisaria ter acesso de escrita.

Você pode configurar o que conta de usuário de um site IIS será executado sob propriedades Site> Segurança de diretório no console de gerenciamento do IIS. Em seguida, apenas certifique-se de definir as permissões de diretório apropriadas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top