我已经在我的本地机器上创建了在 Debug模式下工作正常的网站,但是当我把这个网站放在我机器的本地 iis (7.5) 上时,我得到了
HTTP 错误 401.1 - 未经授权 您无权使用您提供的凭据查看此目录或页面。
身份验证设置 我启用了 Windows 模拟和 Windows 身份验证,并且禁用了该部分中的所有其他内容
所有文件夹都有完整的权限
谁能告诉我这是怎么回事?
最佳答案
作为一个快速而肮脏的修复,授予 IIS_IUSRS
组读取/执行或修改您的网络文件夹的权限...但不要在面向互联网的服务器上执行此操作,请继续阅读。 ...
要正确解决此问题,您应该为您的站点授予应用程序池标识读取/执行 或修改 对您应用程序的 Web 文件夹的权限。为此:
- 打开 IIS 管理器,导航到站点部署到的网站或应用程序文件夹。
- 打开“高级设置”(位于右侧操作 Pane )。
- 记下应用程序池名称,然后关闭此窗口
- 双击身份验证图标打开身份验证设置
- 禁用Windows 身份验证
- 右键单击匿名身份验证 并单击
Edit
- 选择
Application pool identity
单选按钮单击OK
- 从左侧的 IIS 管理器树中选择“应用程序池”节点,然后选择您在第 3 步中记下的应用程序池名称
- 右键单击并选择高级设置
- 展开流程模型设置并选择
ApplicationPoolIdentity
从“内置帐户”下拉列表中单击OK
. - 点击
OK
再次保存并关闭应用程序池高级设置页面 - 打开管理员命令行(右键单击 CMD 图标并选择“以管理员身份运行”。它位于开始菜单的某个位置,可能在“附件”下。
- 运行以下命令:
icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)
例如:
icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)
如果一切顺利icacls.exe
将报告:
processed file: c:\inetpub\wwwroot\mysite Successfully processed 1 files; Failed processing 0 files
关于c# - HTTP 错误 401.1 - 未经本地 IIS 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892547/