为什么 grpc 在 IIS 上响应 403

问题描述

我正在尝试使用 gRPC 在我在 asp.net 核心中构建的后端应用程序之间进行通信。 当我离线试用我的应用程序时,它工作正常,并且每个请求都会得到响应 问题是当我将服务器应用程序上传到 IIS 并尝试发送它以 403 错误 gRPC 响应响应的请求

我的代码很简单,现在我只是在弄乱asp核心中已经制作的示例。 这是我的问候服务

   function detect_sentiment($string){
      $string = urlencode($string);
      $api_key = "< api key >";
      $url = 'https://api.paysify.com/sentiment?api_key='.$api_key.'&string='.$string.'';
      $ch = curl_init();
      curl_setopt($ch,CURLOPT_URL,$url);
      curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
      
      $result = curl_exec($ch);
      $response = json_decode($result,true);
      curl_close($ch);
      return $response;
   }
      
  print_r(detect_sentiment("I love this product"));

这是原始文件

 public class GreeterService : Greeter.GreeterBase
{
    private readonly ILogger<GreeterService> _logger;
    public GreeterService(ILogger<GreeterService> logger)
    {
        _logger = logger;
    }

    public override Task<HelloReply> SayHello(HelloRequest request,ServerCallContext context)
    {
        return Task.Fromresult(new HelloReply
        {
            Message = "Hello " + request.Name
        });
    }
}

这里是发送请求的客户端

Syntax = "proto3";

option csharp_namespace = "GrpcService1";

package greet;

// The greeting service deFinition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}

有人知道为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)