Я преобразовал приложение ASP.NET, которое было разработано в VS.NET 2003 для VS.NET 2010. После исправления всех ошибок сборки и запуска его, он работает хорошо, за исключением одного места где я открываю документ, который я только что скопировал в определенную папку со страницы ASP.NET.
Я получаю ошибку «Отказано в доступе» при попытке открыть файл с страницы ASP.NET. Но когда я иду в Проводник Windows и пытаюсь просмотреть файл, у меня нет проблем. Как я могу это решить?
Вот код:
string url;
sring newurl;
url = GetDocumentPath(540450);
if (url != null)
{
newurl = @"c:\" + System.IO.Path.GetFileName(url);
System.IO.File.Copy(url, newurl, true);
}
Process.Start("iexplore", newurl);
Действительно звучит так, как у пользователя нет правильных разрешений, однако это может быть вызвано тем, что путь в newurl является каталогом.
Кроме того, похоже, что ваше приложение хранит файлы в C: \, которые в зависимости от вашей работы недоступны для пользователей без прав администратора (Windows Vista/Server 2008 и выше), вы можете попробовать использовать монитор процесса, чтобы узнать, соответствуют ли правильные разрешения используются. Смотрите это сообщение в блоге:
http://improve.dk /archive/2009/10/21/solving-access-denied-errors-using-process-monitor.aspx
Похоже, что учетная запись пользователя ASP.net не получает прав доступа к папке. Вам нужно щелкнуть правой кнопкой мыши по папке с файлами в проводнике, перейти к разрешениям, а затем выполнить поиск пользователя ASP (что-то вроде ASPNET), добавить полные права доступа к папке и работать.
Возможно, вам придется обратиться к этой странице на сайте Microsoft. Он предлагает несколько обходных путей для этих ошибок Visual Studio «Отказано в доступе».