2016-10-21 4 views
0

У меня есть метод, который помогает создать каталог ifNotExist и сохранить путь к файлу, ... Теперь у меня небольшая проблема, есть исключение, отличное от Directory.CreateDirectory(savePath); Запускается. и я не могу все понять. Я хотел бы знать, что я делаю неправильно и как это исправить. Любые Субъекты приветствуются. БлагодаряHandle UnauthorizedAccessException Когда Directory.CreateDirectory() Запуск

Вот мой метод:

protected void ASPxUpload_FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e) 
    { 
     if (e.IsValid) 
     { 
      String savepath = String.Format("{0}{1}\\", MapPath(@"~\TicketUploads\"), Session["lastcallid"]); 
      if (!Directory.Exists(savepath)) 
      { 
       Directory.CreateDirectory(savepath); 
      } 
      String savefile = String.Format("{0}{1}", savepath, e.UploadedFile.FileName); 
      e.UploadedFile.SaveAs(savefile); 
      String urlPath = String.Format("{0}{1}\\{2}", @"~\TicketUploads\", Session["lastcallid"], e.UploadedFile.FileName); 
      fault_detail fltdet = session.GetObjectByKey<fault_detail>(Convert.ToInt32(Session["lastcallid"])); 
      fltdet.hasattachment = "Y"; 
      fltdet.AttachUrl = urlPath; 
      fltdet.Save(); 
     } 
    } 

Для получения более подробной информации о том, что я пытаюсь сделать: Это просто позволяет серверу идентифицировать идентификатор пользователя журнала. и с этим ID, поэтому мы должны создать папку в Ticketuploads Папка. Это похоже на то, что мы одновременно пытаемся создать 2 папки. Вот почему я использую: "{0}{1}\\"

+0

Рекомендация: Используйте 'Path.Combine' вместо' String.Format' –

+0

Попробуйте запустить его как admin. –

+0

@AmeyKamat, Спасибо за ваш ответ. Но я просто попробовал то, что вы сказали. У меня есть пользователь с ошибкой: 'Session [" lastcallid "]' он говорит: Caanot конвертировать из объекта в String. –

ответ

2

пожалуйста попробуйте это

string sessionVariable = Convert.ToString(Session["lastcallid"]); 

string path = Path.Combine(MapPath(@"~\TicketUploads\"), sessionVariable); 
if (!Directory.Exists(path)) 
{ 
    Directory.CreateDirectory(path); 
} 

Также

Я имею Добавить разрешения администрации в папку. Как локальный пользователь с системой IIS. user Добавить пример: IIS_IUSRS(Username\IIS_IUSRS) Вот и все.

+0

Ошибка 'UnauthorizedAccessException 'была обработана дескриптором. Может потребоваться разрешение, но я также пробовал это: [http://stackoverflow.com/questions/5802000/directory-createdirectory-exception]('Показать свойствам -> Обмен -> Расширенный доступ -> Разрешения') Stiil Не работает для меня. –

+0

@ MichealP. Можете ли вы дать значение 'Session [" lastcallid "]', для которого вы получаете исключение –

+0

'Session [" lastcallid "]' = 1250057.Это просто позволяет веб-серверу идентифицировать идентификатор пользователя журнала. и с этим идентификатором мы должны создать папку в папке Ticketuploads. Это похоже на то, что мы одновременно пытаемся создать 2 папки. Вот почему я использую: '" {0} {1} \\ "' –

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