У меня есть asp.net веб-приложение, которое загружает файлы в определенной папке на веб-сервере. локально все работает нормально, но когда я развернуть приложение на сервере, я начинаю получать ошибке "маршрут "по D:\Attachments\myfile.doc" отказано и". Я дал в "пул приложений служб IIS" и пользователей, что приложение работает под разрешение "полный доступ" на папку. Я даже дал, что "Все" от полного разрешения, но с той же ошибкой.
Я добавил папку в список исключений антивируса, но с тем же результатом. Я начала подозревать, что может быть и Windows сервер 2008 R2 нужны трюк для моей загрузки на работе. Я очень ценю вашу помощь.
Спасибо
Щелкните правой кнопкой мыши на вашу папку на сервере или локальном компьютере и дать полный доступ к
Группу iis_iusrs
что's оно.
Ваш счет ASP.NET {компьютер}\aspnet
не имеет доступа для записи в эту папку. Именно поэтому ее отсутствии.
Рассмотреть возможность предоставления права доступа к ресурсу на запрос ASP.NET идентичности.
Правой кнопкой мыши на папку для сохранения свойств и GT; вкладка "Безопасность" и GT; редактировать > добавить > местах > выберите свой автомат и GT; нажмите OK > тип Паш ниже "и введите имя объекта для выбора" и > Нажмите кнопку Проверить имена Установите флажки для нужных доступом (
полный контроль). Если он не будет работать для вас сделать то же самое с
сервисная сеть`
Теперь это должно показать ваши местные `{ИМЯ_КОМПЬЮТЕРА}\учетная запись Паш, а затем установить права на запись на этот счет.
В противном случае, если приложение выдает себя за Через в <удостоверение олицетворение=то"Правда и"/>
, тож будет анонимным пользователем (обычно запись iusr_machinename) или запрос на проверку подлинности пользователя.
Или просто использовать специализированное место для хранения файлов в ASP.NET что App_Data с
. Чтобы создать его правой кнопкой мыши на ваш проект ASP.NET (в Visual студии) добавить > Добавить папку ASP.NET > в папку App_Data
. Затем вы'll быть в состоянии сохранить данные на этом месте:
var path = Server.MapPath("~/App_Data/file.txt");
System.IO.File.WriteAllText(path, "Hello World");
проблема может быть в том, что сетевая служба не имеет права читать
salution:
правый клик загрузки -> Райфайзен'ы -> безопасность -и GT;редактировать -и GT; добавить -> тип :сетевой сервис -> флажок полный доступ разрешить-и GT; нажмите ОК или применить
Я столкнулась с этой проблемой раз и в моем случае солн составляет чтобы закрыть любой процесс в диспетчере задач, который использует/доступ к этому файлу.
Если кто-то наткнется на это, так как это первый результат в Google,
не забудьте указать имя метода saveas.
Выиграл't работа
file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation));
Вам нужно это:
filename = Path.GetFileName(file_upload.PostedFile.FileName);
file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation + "\\" + filename));
Я предположил, что метод saveas будет автоматически использовать имя загружен. Продолжал получать и"Доступ запрещен" и ошибка. Не очень описательный актуальной проблемы
Я знаю, что это поздно в игре, но я хотел бы поделиться в случае, если это помогает кто-то.
Вашей точной ситуации не может применяться, однако у меня была похожая ситуация и установки атрибута файла помогло.
Попробуйте задать атрибут файла к нормальному:
var path = Server.MapPath("~/App_Data/file.txt");
File.SetAttributes(path, FileAttributes.Normal);
System.IO.File.WriteAllText(path, "Hello World");
Я надеюсь, что это помогает кто-то.
Перейдите в корневую папку
Щелкните правой кнопкой мыши, выберите Свойства
Выбрать Вкладку Безопасность
Нажмите на редактирование
Нажмите на кнопку Добавить
Тип 'Все'
Нажмите кнопку ОК
Проверьте Полный Контроль
Нажмите кнопку ОК