У меня есть хост, средний уровень доверия, im, использующий пакет imageresizer nuget для моих процессов изображения. Поэтому, когда я пытаюсь с помощью ImageBuilder.Build я получил эту ошибку:Threading.Timer File Создать проблему
Access to the path '(path)' is denied.
System.UnauthorizedAccessException: Access to the path '(path)' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at ImageResizer.ImageBuilder.BuildJob(ImageJob job)
at ImageResizer.ImageBuilder.Build(ImageJob job)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource)
at _10oy.UI.Web.Imager.Models.Downloader.SaveAndSetDimension(String path, Int32 width, Int32 height)
КСТАТИ: (путь) 's отредактирован мной.
Я исследую ошибку, но я не нашел эффективного результата.
вот мой код (я звоню его в threading.timer, это может быть проблема?)
public void SaveAndSetDimension(string path, int width, int height)
{
try
{
ImageBuilder.Current.Build(_MainStream, path, new ResizeSettings() { MaxWidth = width, MaxHeight = height }, false);
}
catch (Exception ex)
{
Results.Failed++;
DAL.Classes.Log.Write(
message: ex.Message,
innerexcepition: ex.InnerException != null ? ex.InnerException.ToString() : ex.ToString(),
user: "Saver",
interfaces: 4 //Imager
);
}
}
и я попытался создать обычный файл в действии
public ContentResult CreateFile()
{
System.IO.File.Create(Server.MapPath("~/myfile.txt"));
return Content("File Created");
}
и его работы ,
спасибо.
Редактировать: Когда я называю это обычным действием, он отлично работает, но при вызове по таймеру я получил эту ошибку.
Может ли ваш метод CreateFile() записать в тот же самый путь, который пытается выполнить ImageResizer? – christofr
Да, я попробую. И это сработало. – alim
Хм, сложно. Возможно, ImageResizer отдает работу подключаемому модулю, который требует больше привилегий. Вы используете какие-либо плагины? – christofr