2011-10-23 32 views
1
Dim filePath As String = "~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/" & itemID & Path.GetExtension(fuImage.FileName) 
     MsgBox(filePath) 
     If fuImage.HasFile Then 
      If Directory.Exists(Server.MapPath("~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/")) = False Then 
       Directory.CreateDirectory(Server.MapPath("~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/")) 
      End If 
      'lblMessage.Text = "" 
      If checkFileType(fuImage.FileName) Then 

       fuImage.SaveAs(Server.MapPath("../Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString)) 

i「はSystem.UnauthorizedAccessExceptionエラーを取得する 'D:\ TriceDealsII 13-10-11 \ Tricedeals II \更新(4)\画像\フリーマーケット\ uploadedImages \ mitali2054'拒否されました "System.UnauthorizedAccessException

なぜですか?

答えて

0

これは、アクセスしようとしているファイルのアクセス許可の問題が原因と考えられます。 Procmonを試して、どのアカウントがファイルにアクセスしようとしているかを確認し、そのアカウントに必要な権限を付与するかどうかを確認できます。

1

IISで実行されるASP.NETアプリケーションは、指定されたアプリケーションプールに割り当てられたユーザーを使用します。各アプリケーションプールには、Windowsグループ "IIS_IUSRS"の一部であるWindowsユーザーが存在します。このユーザー/グループには、Webアプリケーション(または他のディレクトリ)のディレクトリへのアクセスの書き込み/変更がないため、これらのアクセス許可を手動で付与する必要があります。

これを実現するにはエクスプローラでファイル/データの書き込みを行う指定されたパスに移動し、ディレクトリのセキュリティページを開き、AppPoolのユーザーまたはグループ "IIS_IUSRS"をリストに追加し、書き込み(または変更)権限を選択します。

注:書き込み許可は常にセキュリティ上のリスクです。したがって、可能な限り制限する必要があります。

関連する問題