首先我使用Azure活动目录授权我的asp.net应用程序,然后我尝试访问也在Azure上的WCF服务。但是在调用服务时未经授权获取错误401。访问时我是否遗漏了什么?
该错误意味着访问被拒绝的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服务器上尝试以下操作:
或者您可以尝试对“IUSR”帐户进行“完全控制”。也许只是特定用户没有对磁盘的读取权限。
我们遇到了同样的问题,但这只是因为我们访问了“scm”端点。有趣的是,如果您创建一个名为“webapp”的网络应用程序并获得地址https://webapp.azurewebsites.net/ServiceApplication.svc,您还可以通过https://webapp.scm.azurewebsites.net/ServiceApplication.svc访问该服务。但是这个地址不允许匿名访问。使用没有“scm”的地址时不会出现此错误。