当前位置: 首页 > 知识库问答 >
问题:

Azure认知服务-为什么我没有访问服务的权限?(401错误)

胡意致
2023-03-14

我正在写一封信。Net核心web应用程序,其中我使用Azure-计算机视觉。

我所做的一切都如图所示:

https://docs.microsoft.com/pl-pl/azure/cognitive-services/computer-vision/vs-computer-vision-connected-service

我的问题是:

计算机视觉API结果:

{“statusCode”:401,“message”:“由于订阅密钥无效,访问被拒绝。请确保为活动订阅提供有效密钥。”}

我不知道怎么了。我有合适的钥匙和右endpoint。我还检查了这里的所有内容:

https://blogs.msdn.microsoft.com/kwill/2017/05/17/http-401-access-denied-when-calling-azure-cognitive-services-apis/

这是我的密码:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // TODO: Change this to your image's path on your site. 
        string imagePath = @"images/family.jpg";

        // Enable static files such as image files. 
        app.UseStaticFiles();

        string visionApiKey = "";
        string visionApiEndPoint = "ComputerVisionAPI_ServiceEndPoint";

        HttpClient client = new HttpClient();

        // Request headers.
        // client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", visionApiKey);
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "");

        // Request parameters. A third optional parameter is "details".
        string requestParameters = "visualFeatures=Categories,Description,Color&language=en";

        // Assemble the URI for the REST API Call.
       // string uri = visionApiEndPoint + "/analyze" + "?" + requestParameters;
        string uri = "https://westus.api.cognitive.microsoft.com/vision/v1.0" + "/analyze" + "?" + requestParameters;


        HttpResponseMessage response;

        // Request body. Posts an image you've added to your site's images folder. 
        var fileInfo = env.WebRootFileProvider.GetFileInfo(imagePath);
        byte[] byteData = GetImageAsByteArray(fileInfo.PhysicalPath);

        string contentString = string.Empty;
        using (ByteArrayContent content = new ByteArrayContent(byteData))
        {
            // This example uses content type "application/octet-stream".
            // The other content types you can use are "application/json" and "multipart/form-data".
            content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

            // Execute the REST API call.
            response = client.PostAsync(uri, content).Result;

            // Get the JSON response.
            contentString = response.Content.ReadAsStringAsync().Result;
        }

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("<h1>Cognitive Services Demo</h1>");
            await context.Response.WriteAsync($"<p><b>Test Image:</b></p>");
            await context.Response.WriteAsync($"<div><img src=\"" + imagePath + "\" /></div>");
            await context.Response.WriteAsync($"<p><b>Computer Vision API results:</b></p>");
            await context.Response.WriteAsync("<p>");
            await context.Response.WriteAsync(JsonPrettyPrint(contentString));
            await context.Response.WriteAsync("<p>");
        });
    }

共有1个答案

吕永寿
2023-03-14

必须在REST API调用中使用与获取订阅密钥相同的区域。

首先,必须找到订阅的位置。若要查找订阅区域的位置,必须转到认知服务-

其次,您必须找到要调用的正确endpoint。例如,如果我想调用计算机视觉API,我的位置是美国东部,我将使用键1或键2,然后我将使用以下endpoint美国东部-https://eastus.api.cognitive.microsoft.com/face/v1.0/detect

您现在可以访问API了。

有关故障排除的更多详细信息,可以参考本文和本文。

 类似资料:
  • 议程:在Linux和Windows之间有一个共同的项目文件夹 在我的ubuntu机器14.04中,我已将文档根目录从:更改为 我得到错误为: 被禁止的 您没有访问/此服务器的权限。 Apache/2.4。本地主机端口80上的7(Ubuntu)服务器 所以我添加了一些脚本到: 但是可以工作,但不适用于Windows NTFS分区驱动器。 即使在提到: 错误消息“禁止您没有访问/此服务器的权限” 我的

  • 我有一个运行Drupal8的DrupalServer(UBUNTU)。如果我将一些php文件放在根目录中,我可以在浏览器中运行它们,但当我将同一文件放在子目录中时,浏览器给出了403禁止的错误。我已经将权限更改为777,但它不起作用。 有人能帮我吗? “禁止的 您没有访问此服务器上myfile的权限。Apache/2.4。18(Ubuntu)服务器,192.168。51.60端口80“

  • 问题内容: 我正在使用Ubuntu 10.04。 我下创建一个Django项目/命名 并创建一个WSGI文件在同一目录 下面是内容: 这是我添加到我的httpd.conf中的内容: 问题是,当我访问http:// localhost时,它说 问题答案: 第二个目录块与你安装WSGI脚本文件的位置不匹配。尽管将WSGI脚本文件粘贴在存在源代码或其他敏感文件的位置(即同一目录或子目录)是非常不好的做法

  • 我想使用gsutil和服务帐户在命令行上访问Goolge播放报告。有一个云存储URI,格式为gs://bucket\u name,我可以用我的用户帐户列出和下载报告,但不能用我创建的服务帐户。错误总是相同的: 我已向服务帐户授予了所有必需的权限,因此我不明白为什么用户帐户可以使用,而服务帐户却无法使用。 所以如果你知道如何帮助我,我会非常感谢你。

  • Config Config=new ConfigBuilder().withMasterURL(“https://c2.eu-de.containers.cloud.ibm.com:78945”).build();try(KubernetesClient client=new DefaultKubernetesClient(config)){ 我得到了io.fabric8.kubernetes.c

  • 当我在tomcat服务器上运行它时,它在服务页面中返回以下错误:我不能访问WSDL和SOAP 我有这个错误: 类型异常报告 servlet[CXFServlet]的“servlet.init()”消息引发了异常 说明服务器遇到内部错误,导致它无法满足请求。