4

我有一个 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 文件的写入权限,一切正常,但我真的不想这样做(并且不认为我应该这样做才能得到这个工作)。事实上,我很困惑为什么更改文件权限会影响到这一点,但这似乎是问题所在。

我在微软论坛中找到了一些不同的建议来解决一些类似的问题(在这里,我会发布更多链接,但被告知新用户只能在帖子中发布一个链接),但没有一个解决方案帮助。

任何帮助深表感谢。我当然不是 IIS 专家,这让我很困惑。

4

2 回答 2

2

我遇到了同样的问题并且没有找到完整的解决方案,但我确实找到了另一种解决方法(除了授予您提到的写入权限),您可以使用这样您就不必授予写入权限。您可以使用 POST 隧道将所有调用作为 POST 进行,然后添加一个标头来告诉服务它实际上是什么......

是讨论相同问题以及如何进行 POST Tunneling 来解决它的线程。

于 2010-05-23T07:22:47.377 回答
0

尝试Web Service Extensions在 IIS 管理器中启用 WebDAV。

于 2009-08-13T15:56:53.863 回答