Я хочу прочитать имена файлов pdf-файлов из папки сетевого ресурса, соответствующие определенным параметрам, и предоставить ссылку для просмотра их на странице сведений о моей модели. Все, что мне нужно - это имя файла. В настоящее время мне не нужно управление файлами/чтение/запись.Чтение файлов с удаленного диска в приложении Intranet
Я могу показать .pdf в браузере, если у меня есть путь (IE откроет ссылки «file: //»). Часть, которую мне не хватает, - это получение имен файлов из удаленного (но такого же домена) каталога во время выполнения.
Мы установили виртуальный каталог для использования приложения, который работал в прошлом, если разрешенная физическая папка находится на одном сервере, но здесь это не так.
Я пробовал Олицетворение, но это, похоже, не работает, поскольку я все еще получаю доступ, отрицается ошибка.
Я понимаю, что это, вероятно, проблема с безопасностью, и почему это не разрешено, но есть ли конфигурация IIS или другой аспект, который должен быть настроен для этого? Я не могу найти способ с помощью только кода, который открывает каталог для чтения.
Пример кода, как я мог бы нормально прочитать некоторую информацию из одного файла в виртуальном каталоге:
// This example code is inside a controller action, so Server refers to HttpContextBase
var path = Server.MapPath("~/MyVirtualDirectory/" + fileName);
var fileExists = System.IO.File.Exists(path);
var fileLastModified = System.IO.File.LastWriteTime(path);
перечислить через соответствующие файлы в каталоге, я использовал DirectoryInfo
var pdfFileNames = new List<string>();
var dir = new DirectoryInfo(Server.MapPath("~/VirtualDirectory/"));
var pdfs = dir.EnumerateFiles("*.pdf");
foreach (var pdf in pdfs)
{
pdfFileNames.Add(pdf.Name);
}
Как я уже упоминал, эти методы отлично работают, когда физическая папка находится на одном сервере, но как только каталог находится на удаленном диске, он больше не работает. У меня есть разрешения на открытие нужной директории, и мой коллега сказал, что дал соответствующие разрешения виртуальному каталогу и серверу. Не уверен, что еще попробовать в этот момент.
Edit: Теперь, когда он работает, я отобразить файлы с помощью виртуального каталога
http://server/appName/virtualDirectory/pdfFileName
Мы построили первое предложение для решения проблемы. Затем пользователь был настроен как служба. Теперь я могу читать из удаленного виртуального каталога по своему желанию. Спасибо за совет! – Jecoms
Обычно это лучший выбор, потому что ваши разрешения не зависят от машины, на которой развертывается ваш веб-сайт. –