Как загрузить файлы из ASP.NET в другое веб-приложение

У меня есть сценарий, когда мне нужно загрузить файл из одного веб-приложения и использовать его в другом. Моя установка следующая.

  • Один сервер, на котором размещены два веб-приложения в IIS - оба являются ASP.NET
  • Одно из приложений используется для администрирования другого + еще куча вещей
  • Мне нужно загрузить файл из этого административного приложения, сохранить путь в БД через DAL, а затем получить доступ к файлу из другого веб-приложения, которое предоставит файл для загрузки.
  • Храню файлы на диске, только путь в БД

Итак, где и как я могу загрузить файл, чтобы к нему можно было получить доступ из обоих веб-приложений? Следует ли мне использовать службу или есть другой способ?
Вот некоторые связанные вопросы, которые я нашел, но я не думаю, что они охватывают мой конкретный сценарий:
Как обрабатывать загрузку файлов на выделенный сервер изображений?
Как загрузить файл в службу WCF?


person Slavo    schedule 29.09.2008    source источник


Ответы (4)


Поскольку оба приложения находятся на одном сервере, это должно быть просто:

  • Сохраните загруженный файл где-нибудь на сервере.
  • Создайте виртуальный каталог в любом приложении, которому необходимо открыть файлы, указывающие на физический путь.
  • Сохраните виртуальный путь в базе данных для гибкости
person HectorMac    schedule 29.09.2008

Вы можете настроить новый виртуальный каталог в каждом приложении, который указывает на ту же папку на вашем сервере, куда вы будете загружать файлы. Допустим, вы создали новую папку на вашем диске c: под названием «uploads», то есть c: \ uploads. Затем в IIS настройте новый виртуальный каталог с именем «uploads», который указывает на c: \ uploads для каждого веб-приложения. Это должно дать обоим сайтам доступ к файлам.

person Erikk Ross    schedule 29.09.2008

Могу я спросить, почему вы не храните файл в БД? Это сделало бы передачу намного проще.

person MBoy    schedule 29.09.2008
comment
Потому что БД раздувается, а иногда это неприемлемо. Но это еще одна дискуссия, вокруг которой много споров. - person Slavo; 29.09.2008

Предполагая, что путь к файлу, который вы указали в БД, доступен из веб-приложения без прав администратора (что, похоже, так и есть), файл просто должен быть куда-то, к которому у обоих приложений есть права доступа. Только приложение администратора должно иметь доступ на запись.

Вы можете настроить, какая учетная запись пользователя будет запускаться на веб-сайте IIS, выбрав Свойства веб-сайта> Безопасность каталога в консоли управления IIS. Затем просто не забудьте установить соответствующие разрешения для каталога.

person roryf    schedule 29.09.2008