Domanda

Ho uno scenario in cui devo caricare un file da un'applicazione Web e usarlo in un'altra. La mia configurazione è la seguente.

  • Un server, che ospita due applicazioni Web in IIS, entrambi sono ASP.NET
  • Una delle applicazioni viene utilizzata per amministrare l'altra + un sacco di cose in più
  • Devo caricare un file da questa app di amministrazione, salvare il percorso nel DB tramite DAL e quindi accedere al file dall'altra app Web, che fornirà il file per il download
  • Conservo i file su disco, solo il percorso nel DB

Quindi dove e come posso caricare il file in modo che sia possibile accedervi da entrambe le applicazioni web? Dovrei usare un servizio o c'è qualche altro modo?
Ecco alcune domande correlate che ho trovato, ma non credo che coprano il mio scenario particolare:
Come gestire i caricamenti di file su un server di immagini dedicato?
Come caricare un file su un servizio WCF?

È stato utile?

Soluzione

Poiché entrambe le applicazioni si trovano sullo stesso server, questo dovrebbe essere semplice:

  • Salva il file caricato da qualche parte il server.
  • Crea una directory virtuale in qualsiasi applicazione che deve esporre il file file che puntano al percorso fisico.
  • Salva il percorso virtuale nel db per flessibilità

Altri suggerimenti

È possibile configurare una nuova directory virtuale in ogni applicazione che punta alla stessa cartella sul server in cui si caricheranno i file. Supponiamo che tu abbia creato una nuova cartella sul tuo disco c: chiamata " uploads " ovvero c: \ uploads. Quindi nella configurazione di IIS una nuova directory virtuale chiamata " uploads " che punta a c: \ uploads per ogni applicazione web. Ciò dovrebbe consentire a entrambi i siti di accedere ai file.

Posso chiederti perché non stai conservando il file nel DB? Ciò renderebbe il passaggio molto più semplice.

Supponendo che il percorso del file inserito nel DB sia accessibile dall'app Web non amministrativa (come sembra), il file deve solo andare in un punto in cui entrambe le applicazioni dispongono dei diritti di accesso. Solo l'app di amministrazione dovrebbe avere accesso in scrittura.

Puoi configurare quale account utente verrà eseguito un sito Web IIS in Proprietà sito Web > Protezione directory nella console di gestione IIS. Quindi assicurati di impostare le autorizzazioni di directory appropriate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top