IIS文件授权请求失败。

6

我正在尝试访问本地web服务器上的网页。当我浏览到该页面时,我会收到Windows身份验证提示。即使我尝试输入我的凭据,它仍然一直要求身份验证。正如您从下面的错误消息中看到的那样,我已经通过了身份验证。

我检查了用户帐户,并且它可以访问根文件夹和所有下级文件夹。我在IIS中的所有站点都会收到此错误消息。

有什么建议吗?

日志名称:应用程序
来源:ASP.NET 4.0.30319.0
日期:2012年1月5日下午4:12:33
事件ID:1314
任务类别:Web事件
级别:信息
关键字:经典
用户:N/A
计算机:SALTIIS01
说明: 事件代码:4008 事件消息:请求的文件授权失败。 事件时间:2012年1月5日下午4:12:33 事件时间(UTC):2012年1月6日上午12:12:33 事件ID:349fcb2ec3c24b16a862f6eb9b23dd6c 事件序列:7 事件发生:3 事件详细信息代码:0
应用程序信息: 应用程序域:/LM/W3SVC/2/ROOT/Application/SNCDW-19-129702818025409890 信任级别:完全 应用程序虚拟路径:/Application/SNCDW 应用程序路径:D:\Sites\WCF\Application\SNCDW\ 计算机名称:SALTIIS01
进程信息: 进程ID:1896 进程名称:w3wp.exe 帐户名称:iisservice 请求信息: 请求URL:http://webservicestest/Application/SNCDW/PC.svc 请求路径:/Application/SNCDW/PC.svc 用户主机地址:10.60.16.79 用户:js3228 已进行身份验证:True 身份验证类型:Negotiate 线程帐户名称:iisservice

自定义事件详细信息:

事件 XML: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="ASP.NET 4.0.30319.0" /> <EventID Qualifiers="16384">1314</EventID> <Level>4</Level> <Task>3</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2012-01-06T00:12:33.000000000Z" /> <EventRecordID>4189</EventRecordID> <Channel>Application</Channel> <Computer>SALTIIS01.intranet.com</Computer> <Security /> </System> <EventData> <Data>4008</Data> <Data>请求的文件授权失败。</Data> <Data>2012年1月5日下午4:12:33</Data> <Data>2012年1月6日上午12:12:33</Data> <Data>349fcb2ec3c24b16a862f6eb9b23dd6c</Data> <Data>7</Data> <Data>3</Data> <Data>0</Data> <Data>/LM/W3SVC/2/ROOT/Application/SNCDW-19-129702818025409890</Data> <Data>完全控制</Data> <Data>/Application/SNCDW</Data> <Data>D:\Sites\WCF\Application\SNCDW\</Data> <Data>SALTIIS01</Data> <Data> </Data> <Data>1896</Data> <Data>w3wp.exe</Data> <Data>iisservice</Data> <Data>http://webservicestest/Application/SNCDW/PC.svc</Data> <Data>/Application/SNCDW/PC.svc</Data> <Data>10.60.16.79</Data> <Data>js3228</Data> <Data>True</Data> <Data>Negotiate</Data> <Data>iisservice</Data> </EventData> </Event>


9
@SteveC 我认为应该允许这种问题,因为许多程序员在尝试测试和调试解决方案时会遇到这样的问题……有时候甚至没有IT部门 :) - MetaGuru
@ioSamurai 谢谢。作为一名开发者,我遇到了这个问题。 - Jim
4个回答

6

在网站根目录上为

IIS AppPool\YourAppPool

授予读取访问权限。


5

请确保所有与IIS相关的用户都具有访问权限,以下是一些示例:

  • iisservice
  • IUSR
  • IIS_IUSRS
  • Network Service

如果您正在使用WebsitePanel,请确保允许其用户也具有访问权限。


1

直到我给Everyone授权之前,我才使其正常工作。

  1. 打开Windows资源管理器
  2. 选择网站文件夹,例如C:\inetpub\wwwroot\MyWebsite
  3. 右键单击文件并选择“属性”
  4. 选择“安全”选项卡
  5. 点击“编辑”,然后点击“添加”按钮
  6. 点击“位置”按钮,并确保您选择本地机器。(如果服务器属于某个Windows域,则不是Windows域。)
  7. 在“输入要选择的对象名称:”文本框中输入Everyone
  8. 点击“检查名称”按钮,然后点击“确定”。

2
您不需要授予“Everyone”访问权限。只需添加本地“Users”组即可轻松解决此问题。这篇回答解释了如何使用“Users”。我个人想确定为什么即使我明确将读取/执行权限添加到本地IIS_IUSRS组的文件夹/文件中,“Users”仍然是必需的。 - J Man

0

就我个人而言,@J-man的评论(针对“添加所有人都适用...”答案)建议添加“用户”本地机器帐户,在遵循标记答案添加其他本地机器帐户后,最终对我有用。 这是他提供的链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接