UnauthorizedAccessException выдается при попытке сохранить файл в локальной папке, где приложение ASP. NET MVC отлаживается из Visual Studio - PullRequest
0 голосов
/ 27 апреля 2020

Я отлаживаю приложение ASP. NET MVC из Visual Studio 2013. Когда я пытаюсь сохранить файл в локальном расположении (где я отлаживаю его на том же компьютере) "D: \ MyDocs \ Temp "исключение типа UnauthorizedAccessException выдается.

Чтобы сохранить файл, который я делаю:

private void MyMethod(IEnumerable<HttpPostedFileBase> uploadButton)
{
   foreach (var file in uploadButton)
   {
      // do things for example get path
      file.SaveAs(path);
   }
}

, где путь содержит:

"D:\MyDocs\Temp"

и file.FileName is : SomeDocument.PDF

Я слышал о том, чтобы добавить разрешения для учетной записи AS PNET для папки, в которой я пытаюсь сохранить файл, но какое имя пользователя?

Чтобы сделать простой тест Я установил всем пользователям полный доступ к папке «D: \ MyDocs \ Temp», но он продолжает давать сбой и выдает то же исключение.

Трассировка полного стека:

   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, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at System.Web.HttpPostedFile.SaveAs(String filename)
   at System.Web.HttpPostedFileWrapper.SaveAs(String filename)
   at My.Controls.Controllers.MyController.Upload(IEnumerable`1 uploadButton) in d:\MyProjects\Dev\Branch CR10200\My\Controls\Controllers\UploadController.cs:line 107
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.ActionInvocation.InvokeSynchronousActionMethod()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
   at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
...