如何在 IIS 中授予 Web api 应用程序写入权限?

Posted

技术标签:

【中文标题】如何在 IIS 中授予 Web api 应用程序写入权限?【英文标题】:how to grant write permissions to an web api application in IIS? 【发布时间】:2013-06-05 19:41:33 【问题描述】:

我只是在 IIS 服务器上有一个 web api 应用程序,它只是写入 C:\FileStorage\test.txt 上的文本文件,但是当我调用这个 web 服务时,我得到内部 500 错误,在扩展错误后,我得到以下错误,如何在 IIS 服务器上授予对此 Web 服务的写访问权限?

"ExceptionMessage": "Access to the path 'C:\\FileStorage\\test.txt' is denied.",
"ExceptionType": "System.UnauthorizedAccessException",
"StackTrace": "   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n   at 

【问题讨论】:

【参考方案1】:

将该文件夹的权限授予应用程序池。因此,您将转到 Windows 中的 C:\FileStorage 文件夹并编辑权限,并将 IIS APPPOOL\appPoolNameHere 添加为用户,然后为其授予完整权限。

希望对您有所帮助。

编辑

分步说明...

-打开 Windows 资源管理器

-浏览到您的文件夹

-右键单击文件夹并转到属性

-在“安全”选项卡上单击“编辑”

-点击添加

-在 Locations 下,确保它指向您的本地计算机,而不是域

-对于对象名称,请在下面输入,但将 MyAppPool 替换为您的应用程序池的名称...

IIS APPPOOL\MyAppPool

-将权限设置为完全,或者只是添加写入,或者您需要的任何内容。

【讨论】:

您能补充一点细节吗? 您遇到了哪些问题?您知道如何为用户权限添加文件夹权限吗?您执行完全相同的操作,但将其添加到应用程序池中。 问题是我不知道如何为文件夹或 IIS 添加权限 我的问题是,您如何确定您的应用程序池的名称?如果您没有专门设置,是否可以使用默认名称? @B.ClayShannon 要确定应用程序池,您需要转到 IIS,单击您的网站,然后单击基本设置。应用程序池应显示在那里。【参考方案2】:

或者您可以将 APPPOOL 替换为您的服务器或计算机的名称并使用 IIS_ISURS。 示例:

yourserver\IIS_IUSRS

查看此屏幕截图

【讨论】:

以上是关于如何在 IIS 中授予 Web api 应用程序写入权限?的主要内容,如果未能解决你的问题,请参考以下文章

授予 IIS Express 访问 VMWare 中的网络驱动器的权限

如何在 C# 中为 IIS 用户授予文件夹权限?

如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]

让 .NET 5 Web API 在 IIS 中一直运行

如何向 Internet 公开 Web API 以授予与同一网络上的不同计算机连接的能力

如何使用 Web API 来对 MVC 应用程序进行身份验证