我有一个ADO.NET数据服务(我们称之为service.svc)。当我将其部署到启用了集成Windows身份验证的IIS 6站点时,所有请求(GET,POST,PUT和DELETE)都可以正常工作,因为我是该框的管理员。但是,当非管理员用户访问该服务时,只有GET和POST请求有效。当他们尝试PUT或DELETE请求时,会得到HTTP 401.3“访问被拒绝”错误:
“错误消息401.3:您无权使用您提供的凭据查看此目录或页面(由于访问控制列表而拒绝访问)。请Web服务器的管理员授予您访问'... \ service的权限.SVC”。“
如果我给“Authenticated Users”本地组写入.svc文件的访问权限,一切正常,但我真的不想这样做(并且我认为我不应该这样做让这个工作)。事实上,我很困惑为什么更改文件权限会对此产生影响,但这肯定是问题所在。
我在Microsoft论坛(Here中找到了一些不同的建议来修复有点类似的问题,我会发布更多链接,但我被告知新用户可以只发布帖子中的一个链接),但没有一个解决方案有帮助。
非常感谢任何帮助。我当然不是IIS专家,而且这个让我感到难过。
答案 0 :(得分:2)
我遇到了同样的问题并且没有找到完整的解决方案,但我确实找到了另一种解决方法(除了你提到的授予写权限之外),你可以使用它,这样你就不必授予写权限。您可以使用POST隧道将所有调用作为POST执行,然后添加标题以告知服务它实际上是什么...
Here是讨论相同问题以及如何使用POST隧道解决它的线程。
答案 1 :(得分:0)
尝试在IIS管理器中的Web Service Extensions
下启用WebDAV。