在访问天蓝色的WCF服务时,未经授权获取错误401

时间:2016-02-15 18:57:08

标签: azure

首先我使用Azure活动目录授权我的asp.net应用程序,然后我尝试访问也在Azure上的WCF服务。但是在调用服务时未经授权获取错误401。访问时我是否遗漏了什么?

2 个答案:

答案 0 :(得分:0)

该错误意味着访问被拒绝的401 HTTP错误。 我想知道你遇到的401错误的子状态代码。 401错误包含以下子状态代码:

401.1:  Access is denied due to invalid credentials.
401.2:  Access is denied due to server configuration favoring an alternate authentication method. 
401.3:  Access is denied due to an ACL set on the requested resource.
401.4:  Authorization failed by a filter installed on the Web server.
401.5:  Authorization failed by an ISAPI/CGI application.
401.7:  Access denied by URL authorization policy on the Web server.

此外,asp.net应用程序是否已成功在IIS上本地运行到WCF?或者你刚试过在Azure上运行它?

您可以创建自定义用户并使其正常工作,因此如果您遇到此问题,可以在IIS服务器上尝试以下操作:

  • 创建一个Windows用户;
  • 在WCF数据服务文件夹中赋予它读/写/修改/执行/ ...权限;
  • 使用.NET 4,集成模式和此用户创建新的应用程序池;
  • 在网站身份验证上,仅启用匿名模式,并将用户设置为"应用程序池标识"。

或者你可以尝试给予"完全控制"到" IUSR"帐户。也许只是特定用户没有对磁盘的读取权限。

答案 1 :(得分:0)

我们遇到了同样的问题,但这仅仅是因为我们正在访问“ scm”端点。有趣的是,如果您创建一个名称为“ webapp”的Web应用程序并获得地址https://webapp.azurewebsites.net/ServiceApplication.svc,则还可以通过https://webapp.scm.azurewebsites.net/ServiceApplication.svc访问该服务。但是此地址不允许匿名访问。当您使用不带“ scm”的地址时,不会出现此错误。