Dapr + .NET 实战(九)本地调试
前几节开发Dapr应用程序时,我们使用 dapr cli 来启动dapr服务,就像这样:
dapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll
如果你想要通过dapr调试服务呢?在这里使用 dapr 运行时(daprd) 来帮助实现这一点。具体原理就是先从命令行中运行符合正确参数的 daprd,然后启动您的代码并附加调试器。
1.配置launch.json
vscode打开项目,并创建launch.json
修改launch.json的preLaunchTask,自定义名字,preLaunchTask将引用在 tasks.json 文件中定义的任务。
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Frontend-.NET Core Launch (web)","type": "coreclr","request": "launch",//"preLaunchTask": "build","preLaunchTask": "daprd-frontend","program": "${workspaceFolder}/FrontEnd/bin/Debug/net5.0/FrontEnd.dll","args": [],"cwd": "${workspaceFolder}/FrontEnd","stopAtEntry": false,"serverReadyAction": {"action": "openExternally","pattern": "\\bNow listening on:\\s+(https?://\\S+)"},"env": {"ASPNETCORE_ENVIRONMENT": "Development"},"sourceFileMap": {"/Views": "${workspaceFolder}/Views"}},{"name": ".NET Core Attach","type": "coreclr","request": "attach"}]
}
2.配置task.json
需要在task.json文件中定义一个 daprd task和问题匹配器(problem matcher)。这里有两个通过上述 preLaunchTask 成员引用。在 dpred -frontend task下,还有一个dependsOn成员,它引用build任务,以确保最新的代码正在运行/调试。用了 problemMatcher,这样当 daprd 进程启动和运行时,VSCode 就能够知道。
{"version": "2.0.0","tasks": [{"label": "build","command": "dotnet","type": "process","args": ["build","${workspaceFolder}/FrontEnd/FrontEnd.csproj","/property:GenerateFullPaths=true","/consoleloggerparameters:NoSummary"],"problemMatcher": "$msCompile"},{"label": "publish","command": "dotnet","type": "process","args": ["publish","${workspaceFolder}/FrontEnd/FrontEnd.csproj","/property:GenerateFullPaths=true","/consoleloggerparameters:NoSummary"],"problemMatcher": "$msCompile"},{"label": "watch","command": "dotnet","type": "process","args": ["watch","run","${workspaceFolder}/FrontEnd/FrontEnd.csproj","/property:GenerateFullPaths=true","/consoleloggerparameters:NoSummary"],"problemMatcher": "$msCompile"},{"label": "daprd-frontend","command": "daprd","args": ["-app-id","frontend","-app-port","5001","-dapr-http-port","3501","-placement-host-address","localhost:6050","-components-path","C:\\Users\\chesterychen\\.dapr\\components"],"isBackground": true,"problemMatcher": {"pattern": [{"regexp": ".","file": 1,"location": 2,"message": 3}],"background": {"beginsPattern": "^.*starting Dapr Runtime.*","endsPattern": "^.*waiting on port.*"}},"dependsOn": "build"},]
}
因为没有使用 dapr run* cli 命令, 所以运行 daprd list 命令将不会显示当前正在运行的应用列表。
3.调试
在StateController.GetAsync中新增断点,运行并调用http://192.168.43.94:3501/v1.0/invoke/frontend/method/State。
4.不用vscode调试
cmd运行以下命令,监听5001端口
daprd run -dapr-http-port 3501 -app-port 5001 -app-id frontend -placement-host-address localhost:6050 -components-path C:\\Users\\chesterychen\\.dapr\\components
然后直接vs运行项目,即可调试
Dapr + .NET 实战(九)本地调试相关推荐
- Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul
前面我们说了在单机模式下和K8S集群下的Dapr实战,这次我们来看看如何在不使用K8S的情况下,在一个传统的虚拟机集群里来部署Dapr. 1.环境准备 我们准备两台centos7虚拟机 Dapr1:1 ...
- Dapr + .NET 实战(十三)跨语言开发
欢迎大家参加4小时Dapr+.NET 5的实战课程 课程链接 https://ke.qq.com/course/4000292?tuin=1271860f 因为基于Dapr的服务架构是不限语言 ...
- Dapr + .NET 实战(十二)服务调用之GRPC
欢迎大家参加4小时Dapr+.NET 5的实战课程 课程链接 https://ke.qq.com/course/4000292?tuin=1271860f 什么是GRPC gRPC 是一种与语 ...
- Dapr + .NET 实战(十-终篇)K8S运行Dapr
工作原理 为了实现在k8s上安装Dapr,Dapr需要部署dapr-sidecar-injector.dapr-operator.dapr-placement和dapr-sentry服务. dapr- ...
- Dapr + .NET 实战(七)Secrets
什么是Secrets 应用程序通常会通过使用专用的存储来存储敏感信息,如连接字符串.密钥等. 通常这需要建立一个密钥存储,如Azure Key Vault.Hashicorp等,并在那里存储应用程序级 ...
- build怎么调试 react_GitHub - bozhouyongqi/debug-react: 本地调试react源码环境
[TOC] 工欲善其事,必先利其器. 在学习raect源码时,如果能够在浏览器中单步调试,势必会加深理解.其实可以借助webpack的resolve.alias将react等指向本地的目录,这样就不会 ...
- spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- SpringBoot 实战 (九) | 整合 Mybatis
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 SpringBoot 与 Mybatis 的整合以及 Mybatis 的使用,本文通过注解的形式实 ...
- spark sql 本地调试_干货 | 如何成为大数据Spark高手
Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手. ...
- npm run dev 在本地调试出现跨域问题解决方法
npm run dev 在本地调试出现跨域问题 在localhost:8080调试时会出现跨域问题,如图: 我的项目是用webpack作为前端自动化构建工具,可以在webpack-dev-server ...
最新文章
- 使用purge_relay_logs 清理relay log
- 不同分辨率下Apriltag识别精度测试
- SpringBoot动态生成多个Excel文件以压缩包.zip格式下载
- JS实现生成一个周对应日期数组
- 直播电商只能卖便宜货吗?
- Linux下使用GDB进行调试
- 给出如下公式的python表达式7+9i+2xcos66_这100道练习,带你玩转Numpy
- zabbix 服务器监控之数据库操作
- [Python3] 023 面向对象 第三弹
- f(x)的泰勒(Taylor)展开式
- wim linux u盘启动,在U盘启动中安装CDLinux
- linux操作系统adsl 上网设置,Linux操作系统上ADSL拨号上网的方法详解
- 导入文本文件乱码问题
- .ipynb_checkpoints报错的解决方法
- 程序员进阶架构师、技术总监、CTO,需要掌握哪些核心技能
- [机器学习与scikit-learn-15]:算法-决策树-分类问题代码详解
- 7-26 输出大写英文字母
- Android入门,android开发需要什么基础
- Android的数据存储:SharedPrefrence存储,手机内部文件存储,手机外部文件存储
- 自然辩证法复习题 1
热门文章
- Ubuntu14.04LST安装weblogic11g
- 哈希表(hashtable)的javascript简单实现
- JFinal 1.5 发布,JAVA极速WEB+ORM框架
- Android API 中文(14) —— ViewStub
- 提取地图中道路_非机器学习方法·从遥感影像中提取道路
- zabbix4.2 系列(二):agent配置
- springboot三种过滤功能的使用与比较
- 用链表和数组实现HASH表,几种碰撞冲突解决方法
- JQ插件 jquery mobiscroll
- 关中断是否禁止任务调度?关中断能作为互斥吗?