【问题标题】:Can't save file on webserver: System.UnauthorizedAccessException无法在网络服务器上保存文件:System.UnauthorizedAccessException
【发布时间】:2009-07-21 08:06:07
【问题描述】:

我无法使用 FileUpload.SaveAs() 或 File.WriteAllText() 在我的网络服务器上保存文件。我保存的文件夹是 CHMOD 666。

我的代码是这样的:

File.WriteAllText(MapPath(".") + "\\Ads\\test.jpg", "test");

此代码在 Dev 中完美运行。服务器。

最好的问候, 拉塞·埃斯佩霍尔特

System.UnauthorizedAccessException:对路径 *' 的访问被拒绝。 在 System.IO.__Error.WinIOError(Int32 错误代码,字符串可能全路径) 在 System.IO.FileStream.Init(字符串路径、FileMode 模式、FileAccess 访问、Int32 权限、Boolean useRights、FileShare 共享、Int32 bufferSize、FileOptions 选项、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy) 在 System.IO.FileStream..ctor(字符串路径,FileMode 模式,FileAccess 访问,FileShare 共享,Int32 bufferSize,FileOptions 选项,字符串 msgPath,布尔 bFromProxy) 在 System.IO.FileStream..ctor(字符串路径,FileMode 模式) 在 System.Web.HttpPostedFile.SaveAs(字符串文件名) 在 System.Web.UI.WebControls.FileUpload.SaveAs(字符串文件名) 在 *(Object sender, ListViewInsertEventArgs e)

【问题讨论】:

  • 对路径 *' 的访问被拒绝 - 这是实际错误还是您从异常中删除了路径?

标签: c# asp.net file webserver mappath


【解决方案1】:

您需要为机器的 ASPNET 帐户授予所需文件夹的读写权限。 您可以通过打开文件夹属性 -> 安全选项卡来做到这一点。

【讨论】:

  • 我已使用您的评论并将其显示给网络管理员。现在可以了,谢谢:)
【解决方案2】:

您的错误消息指出:

System.UnauthorizedAccessException: Access to the path *' is denied.

这看起来有点奇怪。您是否编辑了路径,或者它是如何显示的?如果是后者,那么您对MapPath 的调用出现问题。

我知道以下内容可能看起来很明显,但过去我被假设所困扰过太多次了。

您是否验证了您认为要写入的文件夹是 MapPath(".") + "\\Ads\\test.jpg" 实际解析到的文件夹?

您是否也拥有“广告”子文件夹的完整权限?

【讨论】:

  • 出于安全原因我隐藏了路径:)
猜你喜欢
  • 2014-03-27
  • 2014-05-27
  • 1970-01-01
  • 2014-07-26
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
相关资源
最近更新 更多