问题描述
我正在努力尝试在本地使用 Dapr 的基本 ASP.NET Core API。我已经遵循了文档,但仍然没有运气。我确定我只是缺少一些基本的东西,但我就是无法解决。
这些是我迄今为止为尝试使其工作而采取的步骤:
- 已安装 Dapr CLI(cli 版本 0.11.0)
- 已执行
dapr init --runtime-version 1.0.0-rc.3
(安装并运行了 3 个 docker 容器) - 导航到我的 dotnet 项目并执行以下命令 -
dapr run --app-id microservicea --app-port 5000 --dapr-http-port 55000 --dapr-grpc-port 55001 -- dotnet run
执行 dapr run
命令后,项目构建和各种 Dapr 日志出现,但是,我也收到以下消息:
Could not update sidecar Metadata for cliPID: PUT http://127.0.0.1:55000/v1.0/Metadata/cliPID giving up after 5 attempts
这向我表明 sidecar 没有作为进程运行,或者只是无法访问。
我不知道我做错了什么。
作为旁注,我确实注意到如果我将 dapr-http-port
与 launchsettings.json
中的端口相匹配,我会收到以下消息 - You're up and running! Both Dapr and your app logs will appear here.
但它仍然不起作用当我尝试调用 http://127.0.0.1:5000/v1.0/invoke/microservicea/method/GetSomeData
端点时。
对此提供一些帮助将不胜感激。如果我不能让这个基本示例工作,那么我将不得不放弃 Dapr 并寻找替代方案来拼接我的微服务。
解决方法
您对 dapr-http-port
和 dapr-grpc-port
使用相同的端口。那里肯定会发生港口碰撞,可能会阻止边车运行。
其次,您在错误的端口上调用。您应该使用 http://127.0.0.1:55000/v1.0/invoke/microservicea/method/GetSomeData
,或者在本例中使用来自 launchsettings.json 的端口
所以事实证明问题是我安装了错误版本的 Dapr CLI 和 Runtime。在撰写本文时,我确保安装了 CLI 工具的 1.0.0-rc.3 版,然后安装了运行时 (dapr init --runtime-version 1.0.0-rc.3
) 的 1.0.0-rc.3 版。安装后,一切正常。