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

问题描述 投票:0回答:2

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

azure
2个回答
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”帐户进行“完全控制”。也许只是特定用户没有对磁盘的读取权限。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.