我有一箇中等信任級別的主機,即時通訊使用imageresizer nuget包爲我的圖像進程。所以當我試圖使用ImageBuilder.Build我得到這個錯誤:Threading.Timer文件創建問題
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)
btw:(路徑)的編輯我。
我研究錯誤,但我沒有找到任何有效的結果。
這裏是我的代碼(我稱其爲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試圖寫入的* same *路徑嗎? – christofr
是的,我嘗試過。它的工作。 – alim
嗯,棘手。 ImageResizer可能將工作交付給需要更多特權的插件。你使用任何插件? – christofr