【问题标题】:Allow write permissions for .NET application允许 .NET 应用程序的写入权限
【发布时间】:2014-03-01 05:39:19
【问题描述】:

我一直在兜圈子,允许我的应用程序写入共享网络驱动器上的文件夹。

到目前为止,我有这个:

FileUploadControl.SaveAs(Server.MapPath("myFolder/" + filename));

这成功将文件保存到

\\machineName\inetpub\wwwroot\myApp\myFolder

但是,我也尝试将相同的文件保存到路径上根文件夹之外的文件夹中

\\machineName\myFolder

使用:

FileUploadControl.SaveAs("C:\\myFolder\\" + filename);

这会返回“拒绝访问”错误。那么如何让我的应用程序将文件写入 \\machineName\myFolder?我曾尝试向 IIS_IUSRS 和 NETWORK SERVICE 授予写入权限,但无济于事。我是否应该创建一个有权写入网络驱动器的用户,然后在写入驱动器时使用模拟来使用该用户? 将 IIS 7 与 .NET 4 应用程序一起使用。

【问题讨论】:

  • 你试过以管理员身份运行吗?哦,我记得必须为特定于应用程序池的用户名授予权限,例如 IIS_[此处的应用程序池名称]...不要忘记关闭这些权限
  • 如果下面的答案不起作用,您可以尝试以编程方式更改权限,如我showed in this SO post

标签: c# asp.net iis-7 permissions


【解决方案1】:

转到您应用程序的应用程序池,右键单击它并选择高级属性。检查 Process model 设置组下的 Identity 值。授予此身份权限以在您的文件夹中写入文件。

如果值为ApplcationPoolIdentity,则用户名为IIS APPPOOL\app_pool_name

【讨论】:

  • 嘿@Anri,感谢您的回复。当我尝试将用户/组名称添加到对象名称框中时,出现“未找到名称”对话框。我一直在尝试添加 IIS APPPOOL\ASP.NET v4.0 Classic> 我会再搞砸一点,看看我做错了什么。
  • 仍然无法为 IIS APPPOOL\app_pool_name 添加权限。我也尝试过@MikeSmithDev 解决方案,但也没有运气。谁能提供进一步的见解?
  • @user2596756 你意识到app_pool_name 只是你真实应用程序池名称的占位符,对吧?
  • 是的。在我的第一条评论中,我详细说明了我尝试添加 IIS APPPOOL\ASP.NET v4.0 Classic
  • @user2596756 试试这个答案stackoverflow.com/questions/7334216/…
猜你喜欢
  • 2021-08-05
  • 2023-03-15
  • 2017-09-18
  • 2023-03-23
  • 2012-08-28
  • 1970-01-01
  • 2017-08-14
  • 2021-06-20
  • 1970-01-01
相关资源
最近更新 更多