为什么用户无法访问文件夹?

时间:2011-07-18 01:59:17

标签: asp.net permissions

我有一个用ASP.NET编写的电子商务商店,设置并且产品有图片。图片存储在标有图像文件夹内的产品的文件夹中

所以路径看起来像〜/ images / products。

我进行了设置,因此用户的帐户是最高级别,并且对WSAT中的文件夹具有显式权限。仍然没有解决它,所以我试图在web.config中添加,这导致505。 。 。或500错误。我把它放在system.web节点上,所以我可能放错了位置,但是我没有注意到MSDN上的任何地方都说它放在哪里。

这是我得到的错误

Exception Details: System.UnauthorizedAccessException: Access to the path 'D:\Hosting\8029486\html\images\products\aad6844e-7c41-45e6-b601-7a792d02197d.jpg' is denied.

ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序是模拟通过,则标识将是匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的请求用户。

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框

这是堆栈跟踪

[UnauthorizedAccessException: Access to the path 'D:\Hosting\8029486\html\images    \products\aad6844e-7c41-45e6-b601-7a792d02197d.jpg' is denied.]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +9717806
   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) +1142
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +78
   System.IO.FileStream..ctor(String path, FileMode mode) +71
   System.Web.HttpPostedFile.SaveAs(String filename) +99
   System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +23
   Products.dsProductDetails_Updating(Object sender, SqlDataSourceCommandEventArgs e) in d:\hosting\8029486\html\admin\AddProducts.aspx.cs:112
   System.Web.UI.WebControls.SqlDataSourceView.OnUpdating(SqlDataSourceCommandEventArgs e) +103
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +659
   System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +95
   System.Web.UI.WebControls.DetailsView.HandleUpdate(String commandArg, Boolean causesValidation) +1105
   System.Web.UI.WebControls.DetailsView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +444
   System.Web.UI.WebControls.DetailsView.OnBubbleEvent(Object source, EventArgs e) +95
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.DetailsViewRow.OnBubbleEvent(Object source, EventArgs e) +112
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

0 个答案:

没有答案