如何在 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 中的网络驱动器的权限
如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]