WCF REST服务 - 401未经授权

时间:2011-08-17 15:45:55

标签: wcf iis rest iis-7 http-status-code-401

我们正在开发一个WCF REST Web服务,它只接收来自任何匿名用户的一堆任意文本,然后在后端执行一些处理。

例如,这是我们的Web服务中的一种方法:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
    [WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}&paramB={paramB}")]
    public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
    {
        //do some stuff...
    }
}

如果我们只使用默认的IIS设置,我们会得到(401) Unauthorized。但是,在经过多次反复试验后,我们发现我们可以通过在实际的.svc文件上为每个人提供WRITE访问权限来使其工作。

我的问题是:为什么IIS需要对.svc文件进行WRITE访问才能使其正常工作?有没有更好的方法,还是我坚持这种hackish(可能不安全)的解决方法?

WTF微软?

可能相关:

2 个答案:

答案 0 :(得分:9)

我也发现这可以通过添加

来解决 <authentication mode="None" />

<system.web>内的

web.config

答案 1 :(得分:7)

在与M $的技术代表交谈后,我被告知这确实是预期的行为。该服务必须具有允许某人向其发送请求的写访问权限,并且当您执行此操作时,它实际上也会在.SVC文件上自动设置写访问权。