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

bd7ea494d9908fc3062cba813bc37745.png

 修改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。

0f3e7197808ae288bc2b0216ef28cab2.png

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运行项目,即可调试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javadoc文档的生成方法_[springboot 开发单体web shop] 4. Swagger生成Javadoc

Swagger生成JavaDoc在日常的工作中,特别是现在前后端分离模式之下,接口的提供造成了我们前后端开发人员的沟通成本大量提升,因为沟通不到位,不及时而造成的[撕币]事件都成了日常工作。特别是很多的开发人员不擅长沟通,…

15个IT技术人员必须思考的问题

行内的人自嘲是程序猿、屌丝和码农,行外的人也经常拿 IT 人调侃,那么究竟是 IT 人没有价值,还是没有仔细思考过自身的价值? 1. 搞 IT 的是屌丝、码农、程序猿? 人们提到 IT 人的时候,总会想到他们呆板、不解…

mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享

##状况描述突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table 等修复myisam的命令操作。现在记录下解决过程,下次遇到就不会这么手忙脚乱了。处理…

20幅扎心漫画,道尽无数人的人生!30万网友:这简直是在偷窥我生活...

全世界只有3.14 % 的人关注了爆炸吧知识每个人在这世界上都是独特的个体但我们常常在很多方面把生活过得很类似在ins上,名叫Sanesparza的博主就把生活中的各种细节通过漫画的形式表达引来31万网友围观许多人纷纷表示:这不就是我吗!太扎心了&a…

多种方法解决Exchange 2010 EMC批量启用邮箱之后出..

平时大家在做Exchange 项目的时候都是需要批量导入AD账户和批量启用AD账户的邮箱,但是有一个比较奇怪的问题是当你使用Exchange 2010 EMC来批量启用邮箱之后会出现乱码问题,并且邮箱用户不能发送和接收电子邮件,那么该如何处理乱码问题呢?不要着急,其实有3种方法可以处理Excha…

matlab菲涅尔衍射_有问必答——SYNOPSYS安装体验课堂——可以设计菲涅尔透镜吗?...

问:SYNOPSYS可以设计菲涅尔透镜吗?答:在USS中有多种菲涅尔面型,用户输入参数即可。问:SYNOPSYS中具有的输入方式?答:大家总是有个误区,以为SYNOPSYS需要输入命令运行,其实…

WeakReference reference quene GC

在了解WeakReference之前,先给出一段简单的代码: public class WeakReferenceTest {public static void main(String[] args) throws Exception {Object o new Object();// 默认的构造函数&#xff0c;会使用ReferenceQueue.NULL 作为queueWeakReference<Object> wr ne…

北大4位数学天才,如今齐聚美国搞科研,令人叹息

全世界只有3.14 % 的人关注了爆炸吧知识最近这些年&#xff0c;计算机、电子产业异军突起&#xff0c;人工智能越来越受到追捧和重视&#xff0c;电子产品智能化已经成为发展的一种潮流和趋势。与此同时&#xff0c;国际竞争也日益激烈&#xff0c;这种竞争归根结底还是人才的竞…

为什么 Dapr 如此令人兴奋

如今你构建软件&#xff0c;您可以从数量众多的云服务中进行选择。仅 AWS 就每个月都在不断为其200多项服务添加新服务&#xff0c;而其他云提供商也都在跟上。如果您的公司想与您的竞争对手竞争&#xff0c;您就需要充分利用这些服务&#xff0c;这些服务在不同的云提供商都有…

java对象头_我的并发编程(二):java对象头以及synchronized升级过程

一、概述研究java对象头的目的是详细分析Java的synchronized锁的升级过程&#xff0c;因为synchronized在锁升级的时候&#xff0c;就是依赖对象头的信息来决定的。本博文针对64位的操作系统来对Java对象头进行详解。二、详细分析1. 用户态与内核态内核态与用户态是操作系统的两…

【转】Beagleboard:BeagleBoneBlack

原文网址&#xff1a;http://elinux.org/Beagleboard:BeagleBoneBlack Did you know that elinux.org has Mailing Lists? Please feel free to register today to discuss the wiki in general, request features, etc. etc.. Thanks!--Wmat (talk) Beagleboard:BeagleBoneBl…

剖析IE浏览器子系统的性能权重

来源于InfoQ&#xff1a; 微软IE开发团队性能主管Jason Weber在一篇博 文中介绍了IE浏览器的各个子系统&#xff0c;并通过实验数据展示了不同网站对浏览器子系统的性能影响和权重&#xff0c;InfoQ中文站对相关内容做了整理&#xff0c;希望对 浏览器开发人员和Web应用开发人员…

每年通过率仅1%的“天才考试”,中国到底应不应该学?

▲ 点击查看说起世界上最顶尖的基础教育&#xff0c;新加坡绝对能占一席之地。香港首富李嘉诚是这么评价新加坡教育的&#xff1a;“新加坡采用的教育体系源于英国传统的教育制度&#xff0c;它的私立、私立教育院校及一流大学和国际教育机构全球卓越。”李嘉诚甚至在长孙还没多…

C# VS生成后事件命令行

“ 引言部分&#xff0c;总领全篇文章的中心内容。”01—前言Visual Studio中&#xff0c;可以在项目-》属性-》生成事件-》生成后事件命令行&#xff08;O&#xff09;:中设置项目生成后执行的脚本&#xff0c;从而实现项目文件生产后的自动部署。如下图所示&#xff1a;02—自…

mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

一、 概述工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal&#xff0c;其功能强大、运行稳定&#xff0c;但是有些方面不是太符合需求&#xff0c;主要有如下三点&#xff1a;需要自己编写客户端来消费canal解析到的数据server-client模式&#xff0c;需要同时部…

如何备份服务器日志到其他服务器_KIWI Syslog日志服务器搭建及配置

认地&#xff0c;kiwi使用UDP 514端口接收日志数据&#xff0c;安装成功后即可接收日志使用命令netstat –ano查看服务器监听状态&#xff0c;如果服务没起来&#xff0c;则重新启动服务Kiwi Syslog Daemon任务&#xff1a;把当天的日志保存在G:event&#xff0c;历史日志保存在…

Dapr牵手.NET学习笔记:状态管理进阶(二)

为了防止并发对数据修改造成差异&#xff0c;dapr使用了etag标签来作为版本号&#xff0c;对数据修改进行验证。下面是对etag的一个demoappsettings.json中的url配置"StateUrl": "http://localhost:3500/v1.0/state/statestore"在PaymentSystem项目中添加两…

这三位同学的名字绝了!笑得肚子疼......

1 这三位同学的名字绝了&#xff01;▼2 我是一只小海豹我在假装跷跷板▼3 单身狗受到暴击▼4 小宝宝真可怜打针打出了条件反射▼5 每生成一个验证码都有一位程序员......▼6 虽然腿短但是人家跑得快啊▼7 内容引起极度舒适▼你点的每个赞&#xff0c;我都认真当成了喜欢…

从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)

从hadoop框架与MapReduce模式中谈海量数据处理前言几周前&#xff0c;当我最初听到&#xff0c;以致后来初次接触Hadoop与MapReduce这两个东西&#xff0c;我便稍显兴奋&#xff0c;认为它们非常是神奇&#xff0c;而神奇的东西常能勾起我的兴趣&#xff0c;在看过介绍它们的文…

WPF过渡面板

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 前言效果投稿来源于-郑竣僖 QQ&#xff1a;41130958301—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;一、Tra…