Как загрузить файлы из ASP.NET в другое веб-приложение
Вопрос
У меня есть сценарий, в котором мне нужно загрузить файл из одного веб-приложения и использовать его в другом.Моя установка следующая.
- Один сервер, на котором размещены два веб-приложения в IIS — оба ASP.NET.
- Одно из приложений используется для администрирования другого + еще куча всего
- Мне нужно загрузить файл из этого приложения администратора, сохранить путь в БД через DAL, а затем получить доступ к файлу из другого веб-приложения, которое предоставит файл для загрузки.
- Я храню файлы на диске, только путь в БД
Итак, где и как я могу загрузить файл, чтобы к нему можно было получить доступ из обоих веб-приложений?Стоит ли пользоваться услугами или есть какой-то другой способ?
Вот несколько связанных вопросов, которые я нашел, но не думаю, что они охватывают мой конкретный сценарий:
Как обрабатывать загрузку файлов на выделенный сервер изображений?
Как загрузить файл в службу WCF?
Решение
Поскольку оба приложения находятся на одном сервере, это должно быть просто:
- Сохраните загруженный файл где -то на сервере.
- Создайте виртуальный каталог в любом приложении, в котором необходимо разоблачить файлы, указывающие на физический путь.
- Сохраните виртуальный путь в базе данных для гибкости.
Другие советы
Вы можете настроить новый виртуальный каталог в каждом приложении, который указывает на ту же папку на вашем сервере, в которую вы будете загружать файлы.Допустим, вы создали новую папку на компьютере C:диск под названием «загрузки», т.е.с:\загрузки.Затем в настройке IIS создается новый виртуальный каталог под названием «uploads», который указывает на c:\uploads для каждого веб-приложения.Это должно предоставить обоим сайтам доступ к файлам.
Могу я спросить, почему вы не сохраняете файл в БД?Это значительно облегчит его передачу.
Предполагая, что путь к файлу, который вы помещаете в БД, доступен из веб-приложения, не являющегося администратором (что, похоже, так и есть), файлу просто нужно попасть куда-то, к чему оба приложения имеют права доступа.Только приложение администратора должно иметь доступ для записи.
Вы можете настроить учетную запись пользователя, которую будет запускать веб-сайт IIS, в разделе «Свойства веб-сайта» > «Безопасность каталога» в консоли управления IIS.Затем просто убедитесь, что установлены соответствующие разрешения для каталога.