2013-08-07 3 views
0

У меня есть веб-сайт ASP.NET. Этот код запускается при нажатии кнопки загрузки. У этого кода много проблем. Это не быстро и просто, и у него большая проблема. Для загрузки изображения в первый раз он работает хорошо, но когда я хочу заменить файл, возвращается ошибка Access denied. У меня есть эта ошибка в IIS express, но она работает правильно на сервере разработки Visual Studio.Загрузить файл: Доступ запрещен


примечание: У меня есть вид сетки, показывающий, какой пользователь изображение должно быть изменено; Этот вид сетки также помогает найти конкретный файл изображения пользователя.

if (UsersImageFileUpload.HasFile && UsersImageFileUpload.PostedFile.ContentType.StartsWith("image")) 
    { 
     string filename = UploadUsersImageGridView.SelectedRow.Cells[1].Text.ToString(); 
     if (!File.Exists(Server.MapPath("~/App_Data/Backups/" + filename))) 
     { 
      UsersImageFileUpload.PostedFile.SaveAs(Server.MapPath("~/App_Data/Users/") + filename); 
     } 
     else if (File.Exists(Server.MapPath("~/App_Data/Backups/" + filename))) 
     { 
      File.Delete(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)")); 
      UsersImageFileUpload.PostedFile.SaveAs(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)")); 
      File.Replace(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)"), Server.MapPath("~/App_Data/Users/") + filename, Server.MapPath("~/App_Data/Backups/")); 
      File.Delete(Server.MapPath("~/App_Data/Backups/" + filename + " (Replace)")); 
     } 
    } 
} 

Название ошибки: Server Error in '/' Application.

Ошибка Второй Название: The process cannot access the file 'D:\Website\App_Data\Users\1-fullname' because it is being used by another process.

Ошибка Описание: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Ошибка Подробности: System.IO.IOException: The process cannot access the file 'D:\App_Data\Users\1-fullname' because it is being used by another process


Мои вопросы:

  • Что проблема с моим кодом?
  • Почему IIS возвращает эту ошибку (доступ к файлу запрещен)?
  • Какое самое важное различие между IIS Express 8 и Visual Studio 2012 Development Server?
  • Любой более быстрый способ создать загрузку и замену?
  • Любая лучшая форма для этой системы?
+0

счета смартфона как бассейн работает под нужды иметь права на чтение/запись этого файла - это первое место, где я хотел бы посмотреть , – Tim

+0

Проверьте, есть ли у вас разрешения на временное расположение интернет-файла – lloydom

+0

У этого кода также возникает проблема с 'localhost'. Это не просто проблема с моего сервера. –

ответ

1

1) Ваш код правильный

2) Вероятно, это происходит потому, что файл, который вы пытаетесь заменить установлен в положение «только для чтения», изменить его и попытаться заменить его

3) не знаю

4) Вы можете попробовать любой метод, пользовательские загрузки или с помощью Ajax, это будет быстрее, но не просто, как asp.net файл загрузить

5) Я думаю, что это хороший один

+0

2) Необходимо установить права доступа к папке из iis. –

+0

Этот сайт использует на многих серверах для многих клиентов, которые я не могу изменить конфигурацию и настройки этих серверов. Вы знаете какой-либо способ изменить настройки на моем веб-сайте и использовать его на многих серверах с разными настройками? –

+0

Есть ли способ изменить настройку IIS Express? –

0

Попробуйте это: - правой кнопкой мыши на папке, в которой файл, размещаемый и дать полный доступ

+0

Любое решение для изменения параметров доступа с моего сайта? Папка ** Полное разрешение ** для ** Все **. Ваш ответ был неправильным! –

+0

Добавить сетевую службу, а затем дать ему полный доступ может быть работа –

+0

пробовал. Извините, но не сработал. _Its отличный способ, который изменяет доступ и разрешения с сервера (Windows), но мне также нужен способ с моего сайта. * ** Не могу получить доступ к файлу, потому что файл используется. ** –

Смежные вопросы